Я новичок в Codeigniter, и я работаю над созданием сайта для врачей и должен разрешить пользователям искать врачей, используя простой URL-адрес, например http://www.mywebsite.com/newyork. Также этот url не имеет никакого класса, поскольку там может быть много состояний и не может иметь класс для каждого состояния. Должен ли я изменить переопределение 404 в сценарии маршрутов? Или есть лучший способ добиться этого
$route['(:any)']='search/check_state';
если я использую выше маршрутизации, то другая страница, например, /login, не работает. Пожалуйста, помогите
Создайте базу данных, содержащую все состояния, и сделайте это так
Внутри поиск /check_state
// Get state from URL
$state = $this->uri->segment(1, "");
// Make sure state is not null and its found in database
if($state <> "" && $this->validateState($state)){
// Valid state, continue
}else{
// Give error message / redirect to 404 page
}
Добавить новую функцию в контроллер
function validateState($state){
// If database contains $state then return true else return false
}
ОБНОВИТЬ
Вы также можете сделать это с помощью формы POST.
Создайте форму на странице, где пользователь вводит данные ввода
echo form_open(base_url().'path_to_post_validation');
// make form here that sends "state" into page that handles validation
echo form_close();
Обработка проверки POST
// Make sure user has send POST request
if($this->input->post()){
// Set form validation rules
$this->form_validation->set_rules('state', 'state', 'required|trim|xss_clean');
// Run form validation
if ($this->form_validation->run() == TRUE){
// Store state into variable
$state = $this->input->post('state');
// Check database that it contains $state and then continue or give error message
}
}
попробовал
$route['search/check_state/:any'] ='search/check_state';