如何为同一路线创建多个请求,如下所示。
Route.php
Route::get('/home', 'HomeController@index');//->middleware('auth');
Route::get('/home/{$user}','HomeController@showStudent');
Route::delete('/home/{$studentId}','HomeController@deleteStudent');
表单工作正常,直到我添加了删除请求。在我的刀片模板中,我有类似的代码。
home.blade.php
<form class="" role="form" method="DELETE" action="/home/{{$student->id}}">
{{ csrf_field() }}
<td><button type="submit" class="btn btn-primary pull-right">Remove Student</button></td>
</form>
我相信由于它显示NotFoundHTTPException的相同路线。
在一条路线上/我试图添加,显示,编辑和删除带有不同按钮的记录。
先谢谢。
答案 0 :(得分:1)
您可以添加表单并使用Laravel的Form Method Spoofing
<input type="hidden" name="_method" value="DELETE">
在此处查看更多内容... http://laravel.com/docs/master/routing#form-method-spoofing
尝试如下....
<form class="" role="form" method="DELETE" action="/home/{{$student->id}}">
<input type="hidden" name="_method" value="DELETE">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<td><button type="submit" class="btn btn-primary pull-right">Remove Student</button></td>
</form>
答案 1 :(得分:0)
1)改变您的路线:
Route::delete('/home/{$studentId}','HomeController@deleteStudent');
要:
Route::get('/delete/{$Id}','HomeController@deleteStudent')->name('delete');
2)改变你的表格标签:
<form class="" role="form" method="DELETE" action="/home/{{$student->id}}">
要:
<form class="" role="form" method="get" action="route('delete', ['id' => $student->id])">
答案 2 :(得分:-1)
HTML表单不支持get
和post
以外的方法。如果您需要模拟它,请包含一个隐藏的输入来模拟delete
:
<input name="_method" type="hidden" value="DELETE">
然后在您的代码中,将其更新为:
<form class="" role="form" method="POST" action="/home/{{$student->id}}">
{{ csrf_field() }}
<input name="_method" type="hidden" value="DELETE">
<td><button type="submit" class="btn btn-primary pull-right">Remove Student</button></td>
</form>
参考: