这是我的路线:
$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。我的代码出了什么问题?感谢
Codeigniter文档是非常简单的编程文档。通过使用以下链接,您可以轻松地了解有关路由的更多信息。
https://www.codeigniter.com/userguide3/general/routing.html
正如我在你的代码中看到的,你不需要提到方法类型和路由。
在这里,我假设您有一个PagesController类,您在其中使用名称show_create创建了一个方法,为此,您可以在路由类中设置如下路由。如果你仍然有困惑,你可以在这里写。
$route['news/show_create']='pages/show_create';
将其添加到您的路线中。
$route['news/show_create']['GET'] = 'pages/show_create';
我以为你的控制器名是PageController。
这就是格式。
$route['desired_route']['method'] = 'controller_name/function';
试试这个:
$route['news/show_create']='Controller_name/method_name';
看起来您不需要路线。如果删除了它们,并且假设控制器名为pages
,那么可以调用类似的方法
http://example.com/pages/show_create
和
http://example.com/pages/create
如果你真的想通过访问news/show_create
来显示表单,那么Girraj的答案中的$route
就是你的选择。
$route['news/show_create'] = 'pages/show_create';