Использование любого другого класса контроллера, а не класса контроллера по умолчанию

Я работаю с CodeIgniter. Вот мой файл маршрутизации

    $route['default_controller'] = 'pages/view/home';
    $route['(:any)'] = 'pages/view/$1';

куда

pages — это класс контроллера, а view — его функция, а home — параметр этой функции.

Теперь это контроллер по умолчанию. Когда мне нужно открыть какую-то другую страницу, а не «дом», я делаю это следующим образом из представления

href="<?php echo base_url('products');?>

Теперь я хочу спросить, если я создам новый контроллер, как я могу использовать функцию этого контроллера? так как я передаю только третий параметр в функцию base_url().

Очевидно, я думаю, что должен написать $routes, но как? так как весь трафик идет на

страницы/просмотр

Я попытался создать новый контроллер, но не смог его использовать. Мой новый контроллер был назван new_controller, и у него есть вызов функции new_function().

и я написал $ route следующим образом

$route['страницы/представление/продукт'] = 'новый_контроллер/новая_функция';


person Saaram    schedule 15.08.2012    source источник


Ответы (2)


Вам не нужно беспокоиться о маршрутах, если вы уберете (: любой) маршрут, который у вас есть. Я думаю, что это блокирует загрузку всех других контроллеров.

Если у вас есть контроллер под названием «Stuff»

в вашем URL-адресе, когда у вас есть mysite.com/stuff/foo/param Code Igniter должен обходить контроллер страницы по умолчанию и использовать

Я думаю, вам лучше сделать что-то вроде этого

$route['page/(:any)'] = "page/view/$1";

И измените по умолчанию только «страницы»

Это откроет ваш новый контроллер для использования в обычном режиме codeigniter.

person Dameo    schedule 15.08.2012

В CodeIgniter маршруты оцениваются в строке, поэтому сначала у вас есть маршрут по умолчанию, а после этого вы должны разместить новый маршрут, $route['pages/view/product'], если вы хотите сохранить (: любой) маршрут, и при этом вы помещаете исключительные маршруты перед маршрутом (:any).

person ghostika    schedule 15.08.2012