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