我尝试从表单发送一些内容以对其进行编辑。
我尝试使用不同的方法来实现此结果。他们都没有工作。
<form method= "GET" action="{{route('edit', $contact->id)}}" name="edit">
...etc
<button type="submit" class="btn btn-primary">Submit</button>
</form>
和
<form method= "GET" action="/{{$contact->id}}/edit" name="edit">
...etc
<button type="submit" class="btn btn-primary">Submit</button>
</form>
我使用标准路由:
Route::resource('/', 'ContactController');
它会创建带有问号(使用GET的结果)的URL结尾,但是即使我手动从URL删除它,它仍然无法工作并显示404页。它出什么问题了?正确的方法是什么?
答案 0 :(得分:0)
以下命令将根据您的web.php路由定义生成一条路由
{{ action('ContactController@edit', $contact)}}
所以只需将其放入表单声明中
<form method= "POST" action="{{ action('ContactController@edit', $contact)}}" name="edit">
@method('PATCH')
请注意,我将方法更改为post,并添加了@method视图助手,以使用正确的方法生成隐藏字段。除非您手动定义该路由,否则您不能使用get路由来更新模型,但我不建议您使用正确的REST动词 您还需要使用
答案 1 :(得分:0)
Route::resource
的第一个参数是资源的名称,它也最终成为路径的一部分:
Route::resource('contact', 'ContactController');
然后,您可以使用路线助手:
<form method="POST" action="{{ route('contact.update', ['contact' => $contact->id]) }}">
@method('PUT')
“编辑”路线用于显示未处理的编辑表单。 “更新”路线用于进行更新,编辑表单将发布到该路径。