Путаница в маршрутах CodeIgniter

Это мой маршрут:

$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. Что не так с моим кодом? Спасибо

Удалите ['get'] из маршрута. Просто используйте $ route ['pages / show_create'] = 'pages / show_create';

Krishna Karki 04.11.2018 10:52
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
36
4

Ответы 4

Добавьте это в свои маршруты.

$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';

Другие вопросы по теме