Направить все действия контроллера, кроме одного в codeigniter - PullRequest
0 голосов
/ 04 ноября 2011

Я делаю проект в CodeIgniter и хочу направить все URL-адреса определенного контроллера к определенному действию, кроме одного.Например, я хочу, чтобы url

myurl/mycontroller/myaction

обрабатывалось действием myaction, а любые другие URL, такие как

myurl/mycontroller/myaction1
myurl/mycontroller/myaction2
myurl/mycontroller/myaction3

, обрабатывались действием abc определенногоконтроллер.Я искал в интернете, и я получаю, как обрабатывать все URL-адреса с помощью определенного контроллера, за исключением некоторых.Способ сделать это:

$route['^(?!admin|user|setup|pages).*'] = "user/view/$0";

Здесь все URL будут обрабатываться user/view, за исключением тех, чья 2-я часть URL-адреса admin, user, setup или pages.

Ответы [ 2 ]

0 голосов
/ 04 ноября 2011

Я считаю, что это правильный синтаксис

$route['myurl/mycontroler/myaction(:any)'] = "myurl/controller_a/action";

Вы можете проверить это здесь

РЕДАКТИРОВАТЬ

Я прочитал ваш комментарий и сделалрегулировка.Попробуйте и посмотрите, подходит ли оно.

РЕДАКТИРОВАТЬ 2

Хорошо, поскольку вы просто хотите, чтобы точное слово myaction не пострадало, используйте либо (: any), либо (\ d +) после слова такперенаправление происходит, когда число присоединяется к слову myaction.Я еще не проверил это.

0 голосов
/ 04 ноября 2011

Я думаю, что маршруты применяются по порядку, так как насчет добавления маршрута для «myaction» в первую очередь перед другими?

$route['myurl/mycontroller/myaction'] = "myurl/mycontroller/myaction";
$route['myurl/mycontroller/abc'] = "myurl/mycontroller/$1";
...