Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
laravel 5删除方法。始终方法RouteCollection.php第233行中不允许HttpException:_Php_Laravel - Fatal编程技术网

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() !!}