Запутывание маршрутов CodeIgniter - PullRequest
0 голосов
/ 04 ноября 2018

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

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

Ответы [ 4 ]

0 голосов
/ 04 ноября 2018

Похоже, вам не нужны маршруты. Если они удалены и предполагается, что контроллер называется pages, вы можете вызывать методы, например,

http://example.com/pages/show_create

и

http://example.com/pages/create

Если вы действительно хотите показать форму, набрав news/show_create, тогда $route в ответе Girraj - это путь.

$route['news/show_create'] = 'pages/show_create';

0 голосов
/ 04 ноября 2018

Документация по Codeigniter - это очень простая документация по программированию. Вы можете легко узнать больше о маршрутизации, используя следующую ссылку.

https://www.codeigniter.com/userguide3/general/routing.html

Как я вижу в вашем коде, вам не нужно указывать тип метода вместе с маршрутом.

Здесь я предполагаю, что у вас есть класс PagesController, в котором вы создали метод, используя имя show_create, и для этого вы можете установить маршрутизацию, как показано ниже в вашем классе маршрута. Если у вас все еще есть путаница, вы можете написать здесь.

$ route ['news / show_create'] = 'pages / show_create';

0 голосов
/ 04 ноября 2018

попробуйте это:

$route['news/show_create']='Controller_name/method_name';
0 голосов
/ 04 ноября 2018

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

$route['news/show_create']['GET'] = 'pages/show_create';

Я предположил, что ваш контроллер называется PageController.

Это формат.

$route['desired_route']['method'] = 'controller_name/function';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...