У меня есть URL-адрес www.mywebsite.com/store/123456
где store – мой класс контроллера, и у меня есть функция индекса, где Im получает значение после магазина, т. е. 123456. Но я не могу этого достичь.
Как было найдено в Интернете, я попытался добавить это к маршрутам $route['store/(:any)'] = 'store/index';
также попробовал
$route['store/(:any)'] = 'store/index/$1';
но, похоже, не работает. Пожалуйста, помогите мне.
В функции индекса контроллера
public function index() { echo $this->uri->segment(1); }
Но его не работает. Помощь людям
Вы вызываете метод 123456()
вместо метода index()
поэтому получаете 404 CI.
Самый простой способ – использовать этот вид маршрута
$route['store/(:any)'] = 'store/index/$1';
И наверху добавьте параметр в функцию индекса в вашем случае
public function index($parameter) { echo $this->uri->segment(2); }
обратите внимание, что я изменил параметр сегмента, см. документацию .
используя _remap ()
function _remap($parameter){ $this->index($parameter); } function index($p) { echo $p; //shows 123456 }
Если я правильно помню:
сегмент (n) дает вам сегменты вашего uri до того, как произойдет маршрутизация
rsegment (n) дает вам сегменты вашего uri после маршрутизации (если была выполнена маршрутизация или такая же, как сегмент, если она не была)
поэтому для / store / 123456 перенаправляется в / store / index / 123456
segment(1) == rsegment(1) == 'store' rsegment(2) == 'index' segment(2) == rsegment(3) == '123456'
Маршрут:
$route['terms_and_conditions'] = 'SO_front/page/1';
контроллер:
public function page($id) { echo $id; }
Выход: 1