У меня есть контроллер с именем search
. Codeigniter работает следующим образом, если пользователь вводит sitename.com/search
который попадает в контроллер search
и запускает функцию index
.
Если пользователь затем вводит sitename.com/search/cars
, контроллер будет искать функциональные cars
в контроллере search
.
Однако я хочу иметь общую функцию, называемую lookup (), которая принимает второй параметр в строке URL.
Например: sitename.com/search/ электроника [электроника возвращается] sitename.com/search/ сыр [сыр возвращается]
Затем он выполняет поиск базы данных с использованием ключевого слова, если находит совпадение, которое загружает страницу. В случае с автомобилями это будет sitename.com/search/cars
если нет совпадения, тогда он перенаправляется на sitename.com/search/error
.
Возможно ли изменить мой контроллер для обработки таких запросов? Без указания всех возможных маршрутов?
$route['Cars'] = 'sitename.com/search/Cars'; $route['Cheese'] = 'sitename.com/search/Cheese'; $route['Electronics'] = 'sitename.com/search/Electronics';
<?php class Search extends CI_Controller { public function __construct() { parent::__construct(); $this->load->helper('url'); //parse URL: run lookup() function then redirect to page if valid return } public function index() { //check for url string to see what set or collection to load: } public function lookup() { } } ?>