Как написать такой контроллер?

Вопросы об установке, настройке и работе самого фреймворка

Как написать такой контроллер?

Сообщение smackthat » 08 мар 2010, 12:05

Привет!
Такая ситуация: обычно в URL сначала идет название контроллера, потом его функция, потом аргумент к функции (site.ru/main/news/2009-10-02/)

Как переделать контроллер, чтобы он работал по такой схеме: сначала идет аргумент функции и только он (site.ru/2009-10-02/). Тоесть сначала ищется страничка с новостью в выставленной нами функции и контроллере по-умолчанию. Если страничка не найдена, то уже ищется контроллер, тоесть как обычно.
Аватара пользователя
smackthat
 
Сообщения: 76
Зарегистрирован: 01 апр 2009, 12:02
Откуда: Miami Beach

Re: Как написать такой контроллер?

Сообщение snake.nf » 08 мар 2010, 12:26

Контроллер переделывать не надо, надо рутинг подправить.
http://code-igniter.ru/user_guide/general/routing.html
Аватара пользователя
snake.nf
 
Сообщения: 40
Зарегистрирован: 16 фев 2010, 11:36

Re: Как написать такой контроллер?

Сообщение smackthat » 16 мар 2010, 13:34

можно ли на примере показать, как это реализовать? Я пытаюсь сделать так, но это не работает:
Код: Выделить всё

$route
['default_controller'] = 'main';
$route['scaffolding_trigger'] = '';

$route['login'] = 'main/login';
$route['logout'] = 'main/logout';
$route['cabinet'] = 'main/cabinet';
$route['addPage'] = 'main/addPage';
$route['page/(:any)'] = 'main/page/$1';
$route['editPage/(:any)'] = 'main/editPage/$1';
$route['deletePage/(:any)'] = 'main/deletePage/$1';
$route['(:any)'] = 'main/page/$1';
 


Тоесть последняя строка должна настраивать роутинг, как мне нужно: $route['(:any)'] = 'main/page/$1';
Хотя вот это работает:
Код: Выделить всё

$route
['page/(:any)'] = 'main/page/$1';
$route['editPage/(:any)'] = 'main/editPage/$1';
$route['deletePage/(:any)'] = 'main/deletePage/$1';
 
Аватара пользователя
smackthat
 
Сообщения: 76
Зарегистрирован: 01 апр 2009, 12:02
Откуда: Miami Beach

Re: Как написать такой контроллер?

Сообщение radioheaded » 16 мар 2010, 15:27

Что именно не работает? Покажите пример (uri), который не работает.
radioheaded
 

Re: Как написать такой контроллер?

Сообщение michail1982 » 16 мар 2010, 18:49

вот такое убожиство пришло в голову :))
поставьте 1м роутом
Код: Выделить всё

$route
['(\d+)-(\d+)-(\d+)'] = 'controller/function/$1-$2-$3';
 
Аватара пользователя
michail1982
 
Сообщения: 533
Зарегистрирован: 25 ноя 2008, 15:36

Re: Как написать такой контроллер?

Сообщение smackthat » 16 мар 2010, 22:39

radioheaded писал(а):Что именно не работает? Покажите пример (uri), который не работает.

похоже, что все работает, проблема была в моем коде.
Аватара пользователя
smackthat
 
Сообщения: 76
Зарегистрирован: 01 апр 2009, 12:02
Откуда: Miami Beach

Re: Как написать такой контроллер?

Сообщение smackthat » 21 мар 2010, 12:35

В таком роутинге есть ошибка?
Код: Выделить всё

$route
['category/(:num)/(:num)'] = 'main/category/$1/$2';
 

Или нужно использовать рег выражения при 2х переменных?
Аватара пользователя
smackthat
 
Сообщения: 76
Зарегистрирован: 01 апр 2009, 12:02
Откуда: Miami Beach

Re: Как написать такой контроллер?

Сообщение Be3 » 21 мар 2010, 12:39

ошибки нет
не нужно.
Аватара пользователя
Be3
Киборг убийца
 
Сообщения: 285
Зарегистрирован: 02 июл 2008, 06:25
Откуда: NSK

Re: Как написать такой контроллер?

Сообщение smackthat » 21 мар 2010, 13:35

спасибо
Аватара пользователя
smackthat
 
Сообщения: 76
Зарегистрирован: 01 апр 2009, 12:02
Откуда: Miami Beach


Вернуться в Общие вопросы по фреймворку

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0