#php #codeigniter #codeigniter-2 #codeigniter-url
#php #codeigniter #codeigniter-2 #codeigniter-url
Вопрос:
Ниже мой код
$route['default_controller'] = "products";
$route['products/([:any])'] = "category/subcategory";
$route['404_override'] = '';
Мне нужно перенаправить, если я получу какой-либо аргумент после продуктов / в категорию / подкатегорию. Я буду использовать подстановочный знак, но он все равно не работает. Выдает ошибку 404 not found.
Вот мой код контроллера категории:-
if( ! defined('BASEPATH')) exit('No direct script access allowed');
class category extends CI_Controller{
function category(){
parent::__construct();
}
function index(){
echo 'index';
}
function subcategory(){
echo 'subcategory';
}
}
Комментарии:
1. Вы должны определить переопределение 404 и использовать $route[‘products/([:any])’] = «категория / подкатегория / $ 1»;
Ответ №1:
$route['product/((d*)[a-zA-Z_]*(d*))'] = 'category/$1';
Попробуйте это, это сработает для вас
Комментарии:
1. Благодаря Ankit Ankit … но я хочу перенаправить на категорию / подкатегорию. и я пробовал решения, которые вы даете … но все равно его give 404 не найден.
2. и после продукта есть только маленькая буква / вот почему я использую ([a-z]) или ([:any]).
3. при вызове uri /category / subcategory он вызовет функцию контроллера продукта, имя которой является подкатегорией.
4. маршрут, который я предоставляю вам, работает динамически для всех действий контроллера продукта, вам не нужно писать маршрут для всех действий, которые принадлежат контроллеру продукта, и название действия может быть любым, поэтому я добавляю заглавную букву allso и нумерую все так.
5. $route[‘product / subcategory’] = ‘категория / подкатегория’; этот маршрут специфичен для вашей проблемы
Ответ №2:
Я получаю решения.
$route['products/(:any)'] = 'products/subcategory/$1';