Intereting Posts
Doctrine: Как удалить часть предложения where из выбранного запроса внутри прослушивателя (preDqlSelect)? Как я могу сделать ссылку на загрузку случайного имени php на странице? ReCaptcha 2.0: включить кнопку «Отправить» при обратном вызове, если recaptcha успешно Скрытые поля по-прежнему перечислены из базы данных в cakephp 3 Есть ли функция в Django / Python, похожая на PHP flush (), которая позволяет мне отправлять часть ответа HTTP клиентам? не может получить НЕКОТОРЫЕ переменные сеанса на разных страницах Как сделать этот код повторно используемым для разных видов? Правильный метод Как создавать и хранить хэши паролей с помощью Blowfish в PHP Как защитить файл конфигурации базы данных в проекте? Почему PHP не заменяет переменную в строке? Можно ли использовать переменные среды в php.ini? Как автоматически начать загрузку в PHP? Проблема с Unicode с PHP Google App Engine PHP на окнах Есть ли способ распаковать файлы .Z с помощью php?

Codeigniter – маршрутизация на контроллер, если он существует, если не использовать dafault

Поэтому я настроил свои маршруты так:

$route[':any'] = "main"; $route['products/(:any)'] = "products/product/$1"; 

Например, www.mysite.com/something идет на главный контроллер, где я занимаюсь «чем-то» . С продуктами я занимаюсь аналогичным образом.

Но, как вы можете видеть после этого, я должен записать все остальные контроллеры с помощью методов, которые я хочу использовать вместо основного контроллера. Есть ли способ автоматически определить, существует ли контроллер, используя контроллер, а не по умолчанию «main» ?

 $route['products'] = "products"; $route['admin/user/login'] = "admin/user/login"; $route['admin/user/logout'] = "admin/user/logout"; $route['admin/migrations'] = "admin/migrations"; $route['admin/dashboard'] = "admin/dashboard"; 

Я не могу поверить в это, так как нашел его в блоге где-то, но я использую следующий код в моих маршрутах.php, в вашем случае я бы поставил его выше $route[':any'] = "main";

 $controller_dir = opendir(APPPATH."controllers"); while (($file = readdir($controller_dir)) !== false) { if (substr($file, -4) == ".php" ) { $route[substr($file, 0, -4)."(.*)"] = substr($file, 0, -4)."$1"; } elseif (substr($file, -5) == ".php/") { $route[substr($file, 0, -5)."(.*)"] = substr($file, 0, -5)."$1"; } } 

Если мне нужно переопределить любой из них или иметь какие-либо уникальные маршруты, я помещаю их вверху файла route.php выше этого кода.