laravel 5删除方法。始终方法RouteCollection.php第233行中不允许HttpException:
这是我的路线laravel 5删除方法。始终方法RouteCollection.php第233行中不允许HttpException:,php,laravel,Php,Laravel,这是我的路线 Route::delete('/customer_page/summary/{id}', 'ReservationController@delete_cart'); 我的控制器功能 public function delete_cart($id) { cart::findOrFail($id)->delete(); return redirect('/customer_page/summary'); } 我的表格 @
Route::delete('/customer_page/summary/{id}', 'ReservationController@delete_cart');
我的控制器功能
public function delete_cart($id)
{
cart::findOrFail($id)->delete();
return redirect('/customer_page/summary');
}
我的表格
@foreach($cart as $key => $val)
<tr>
<td>{{ $val->room_type }}</td>
<td>{{ $val->number_of_rooms }}</td>
<td>{{ $val->price }}</td>
<td>
<form action="/customer_page/summary/{{ $val->id }}" method="post">
{{ csrf_field() }}
<input type="hidden" name="_method" value="DELETE" />
<button type="submit" class="btn waves-effect red"><i class="material-icons">delete</i>delete</button>
</form>
</td>
</tr>
@endforeach
@foreach($cart as$key=>$val)
{{$val->房间类型}
{{$val->房间数量}
{{$val->price}
{{csrf_field()}}
删除
@endforeach
我不知道为什么我总是遇到这样的错误您需要更改表单上的方法,从POST到DELETE 在已定义为“删除”的管线上可以看到:
Route::delete('/customer_page/summary/{id}', 'ReservationController@delete_cart');
执行以下操作(RESTFUL)
或(不休息)
控制器
public function destroy($id)
{
$item = Reservation::findOrFail($id);
$item->delete();
}
看法
@foreach($reservationas$item)
{{$item->description}
{Form::open(['method'=>'DELETE','route'=>'reservations.destroy',$item->id])}
{{Form::hidden('id',$item->id)}
{{Form::submit('Delete',['class'=>'btn-btn-danger'])}
{{Form::close()}}
@endforeach
或者(对于不休息的)
{{Form::open(['route'=>['My.route',$value->id],'method'=>'delete'])}}
删除
{{Form::close()}}
您需要在表单上设置method=“POST”
,然后在表单内部使用Laravel的method\u field()
helper:{{method\u field('DELETE')}
。不要试图直接将您的方法设置为delete
使用form helper包form laravel collective的另一个答案也可以,但默认情况下,它不再包含在laravel中,因此我认为谨慎的做法是概述如何使用原始HTML实现这一点。如果您使用下面的
{!! Form::model($user,
['method' => 'DELETE',
'route' => ['users.destroy', $user->id],
]) !!}
{{ method_field('DELETE') }}
//那你就到这里来
{{ method_field('DELETE') }}
{!! Form::close() !!}
表单元素的method属性似乎只支持
get
或post
。它是否也支持删除?不管怎样,我认为这是正确的。它仍然说MethodNotAllowedHttpException@HPierce不,HTML表单仅支持GET和POST。它可以从“操作”中删除起始的/
@foreach($reservations as $item)
<tr>
<td>{{ $item->description }}</td>
<td>
{{ Form::open(['method' => 'DELETE', 'route' => 'reservations.destroy', $item->id]) }}
{{ Form::hidden('id', $item->id) }}
{{ Form::submit('Delete', ['class' => 'btn btn-danger']) }}
{{ Form::close() }}
</td>
</tr>
@endforeach
{{ Form::open(['route' => ['My.route', $value->id], 'method' => 'delete']) }}
<button type="submit">Delete</button>
{{ Form::close() }}
{!! Form::model($user,
['method' => 'DELETE',
'route' => ['users.destroy', $user->id],
]) !!}
{{ method_field('DELETE') }}
{{ method_field('DELETE') }}
{!! Form::close() !!}