Это мой маршрут:
$route['pages/show_create']['GET'] = 'pages/show_create';
$route['pages/create']['POST'] = 'pages/create';
А это мой контроллер:
public function show_create()
{
$data['title'] = 'Create new news';
$this->load->view('templates/header', $data);
$this->load->view('news/create');
$this->load->view('templates/footer');
}
public function create()
{
$data['title'] = 'Create new news';
$this->form_validation->set_rules('title', 'Title', 'required');
$this->form_validation->set_rules('text', 'Text', 'required');
if ($this->form_validation->run() === FALSE)
{
$this->load->view('templates/header', $data);
$this->load->view('news/create');
$this->load->view('templates/footer');
}
else
{
$this->news_model->set_news();
$this->load->view('news/success');
}
}
Я хочу показать форму, получив доступ к маршруту news/show_create, но он просто возвращает 404. Что не так с моим кодом? Спасибо






Добавьте это в свои маршруты.
$route['news/show_create']['GET'] = 'pages/show_create';
Я предположил, что имя вашего контроллера - PageController.
Это формат.
$route['desired_route']['method'] = 'controller_name/function';
Документация Codeigniter - это очень простая документация по программированию. Вы можете легко узнать больше о маршрутизации, перейдя по следующей ссылке.
https://www.codeigniter.com/userguide3/general/routing.html
Как я вижу в вашем коде, вам не нужно указывать упомянутый тип метода вместе с маршрутом.
Здесь я предполагаю, что у вас есть класс PagesController, в котором вы создали метод, используя имя show_create, и для этого вы можете установить маршрутизацию, как показано ниже, в своем классе маршрута. Если у вас все еще есть путаница, вы можете написать здесь.
$ route ['news / show_create'] = 'pages / show_create';
попробуй это:
$route['news/show_create']='Controller_name/method_name';
Похоже, маршруты вам не нужны. Если они удалены и если контроллер назван pages, вы можете вызвать такие методы
http://example.com/pages/show_create
а также
http://example.com/pages/create
Если вы действительно хотите показать форму, получив доступ к news/show_create, тогда $route в ответе Гирраджа - это то, что вам нужно.
$route['news/show_create'] = 'pages/show_create';
Удалите ['get'] из маршрута. Просто используйте $ route ['pages / show_create'] = 'pages / show_create';