我对Laravel相当陌生,我正在使用Resource Controller尝试CRUD操作。我面临的问题是,在创建任务表单时,action应该是什么。让我给您一个概述,应用程序是如何设计的。我为MVC创建了单独的目录,如下所示:
路线:路线::资源(“todo”,“Todo_Controller\todo_controller”);
路线:名单

主计长:
public function index()
{
return view('Todo_View\home');
}
public function create()
{
return view('Todo_View\create');
}
public function store(Request $request)
{
$todo= new todo_model();
$todo->title=$request->title;
$todo->body=$request->body;
$todo->save();
return redirect('todo');
}create.blade.php
<form method="POST" action="../todo">
{{csrf_field()}}
<tr><td><input type="text" name="title" value="" placeholder="Title"></td></tr>
<tr><td><input type="text" name="body" value="" placeholder="Body"></td></tr>
<tr><td><input type="submit" name="submit" value="Submit"></td></tr>
</form>现在的问题是表单的action应该是todo,就像在route:list中可以看到的那样,但是当我点击submit时,我得到了MethodNotAllowedHttpException,显示的URL是http://localhost/laravel-7/blog/public/todo/todo。但是在打和试的过程中,我发现我应该使用表单动作作为../todo。我对为什么要使用这个操作感到非常困惑,因为它没有任何意义,因为在路由列表中,URI被明确地称为todo
另一点,当我访问索引页时,URI是http://localhost/laravel-7/blog/public/todo,当我从主页重定向创建页面时,URI是http://localhost/laravel-7/blog/public/todo/create。
发布于 2018-06-02 15:03:41
您在laravel中混淆了action和本机php。
将action="../todo"替换为action="{{url('todo')}}"
<form method="POST" action="{{url('todo')}}">
{{csrf_field()}}
<tr><td><input type="text" name="title" value="" placeholder="Title"></td></tr>
<tr><td><input type="text" name="body" value="" placeholder="Body"></td></tr>
<tr><td><input type="submit" name="submit" value="Submit"></td></tr>
</form>发布于 2018-06-02 15:27:37
您只需要指定路由,不需要说明文件的实际位置,这样action="/todo"就可以正常工作了。
https://stackoverflow.com/questions/50658160
复制相似问题