маршрутизация на codeigniter не работает

Я начинаю изучать codeigniter (я использую версию 3.0.0), но у меня есть проблема, когда я пытаюсь маршрутизации с параметрами

В файле rout.php у меня есть:

$route['admin/orders'] = 'admin_orders/index';
$route['admin/orders/(:any)'] = 'admin_orders/index';
$route['admin/orders/getAll'] = 'admin_orders/getAll';
$route['admin/orders/getLast'] = 'admin_orders/getLast';
$route['admin/orders/delete/(:any)'] = 'admin_orders/delete'

;

В admin_orders.php у меня есть:

 public function delete(){
$id = $this->uri->segment(4);
echo "ok   $id";
}

И в представлении:

<a href="'.site_url("admin").'/orders/delete/3'.'" class="btn btn-info">Delete</a>

Но когда я нажимаю Delete, приложение перезагружает страницу, и если я пытаюсь без / (: any), функция загружается и показывает мне сообщение, и другие маршруты работают.

Конечно, я делаю что-то не так, как я могу загрузить одну функцию с параметром, используя codeigniter 3?

0

Решение

Ваш порядок использования :any неправильно, так как это, скорее всего, будет соответствовать до остальных. Даже если это не то, что нужно перечислить в более общем последнем, просто чтобы быть в безопасности, потому что, когда маршрутизатор работает по правилам, он остановится, когда скажет, что все соответствует, и если сначала это более общие или общие правила, то он никогда не достигнет конкретный. Точно так же, как правило, следует указывать более точные первые и более общие последние. Вот почему else идет после if и ifelse в стандартной условной логике (что очевидно), но в таких случаях легко пропустить простые правила, подобные этим ..

смотрите также
https://ellislab.com/codeigniter/user-guide/general/routing.html

важные биты

(: num) будет соответствовать сегменту, содержащему только цифры.
(: любой) будет соответствовать сегменту, содержащему любой символ.

Примечание. Маршруты будут выполняться в порядке их определения. Более высокие маршруты всегда будут иметь приоритет над более низкими.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector