Я использую Codeigniter 3.x, Using routes.php Я хочу создать динамические маршруты, например, у меня есть класс Class1
.
Мне нужен выходной URL
mysite.com/Class1-Student-Search
Но использование дефиса (-) не работает
Если я поставлю косую черту (/), она работает,
$route['(:any)/Student-Search'] = "search";
он возвращается
mysite.com/Class1/Student-Search
и использование подчеркивания (_) также работает.
$route['(:any)_Student-Search'] = "search";
возвращается
mysite.com/Class1_Student-Search
Но я хочу использовать дефис (-), если я выразим это, он перейдет на страницу ошибок 404, я использовал эти четыре решения, но не работал для меня.
$route['(:any)-Student-Search'] = "search"; $route['([a-zA-Z]+)-Student-Search'] = "search"; $route['([a-zA-Z-0-9]+)-Student-Search'] = "search"; $route['(.*)-Student-Search'] = "search";
И если я жестко задаю значение в маршруте
$route['Class1-Student-Search'] = "search";
Затем он также работает
Вы пытаетесь создать динамические маршруты, которые невозможны в кодеигнитре, если вы видите следующую блок-схему кодаигнитора, вы понимаете, что я имею в виду.
также вы можете увидеть эту диаграмму на официальном сайте codeigniter
когда вы пытаетесь перенаправить или вызвать какой-то URL-адрес, это работает так
Каждый запрос сначала отправляется туда, потому что вы не можете сделать его динамичным
Вот мое решение, оно работает для меня, делайте так.
$route['(:any)-Student-Search'] = "search";
то в вашей ссылке, надеюсь, на ваш взгляд, href ссылку, как это.
href="/<?php echo $row->classname; ?>-Student-Search"
Дело в том, что вы не только должны делать свои маршруты, но и суффикс в своей ссылке href.