Laravel搜索删除

时间:2018-08-09 13:50:17

标签: laravel laravel-5

当我进行搜索并获得搜索结果时,我尝试删除一条记录,该记录已删除,显示成功删除的消息,但是在出现错误后,抛出新的MethodNotAllowedHttpException($ others);

public function destroy($id)
{
    $id = Hashids::decode($id);
    $id = implode(',', $id);

    $sub = Subs::find($id);
    $sub->delete();

    return response()->json([
        'success' => "Subscription Plan Deleted successfully.",
        'tr'      => 'tr_' . $id,
    ]);
}

路线:

Route::post('/subscriptions/search/results','SubsController@searchSubs'); 
Route::get('/subscriptions/restore/{id}', 'SubsController@restore'); 

链接:

<a href="{{action('SubsController@destroy', Hashids::encode($sub['id']))}}" class="btn btn-danger btn"
   data-tr="tr_{{$sub['id']}}" data-toggle="confirmation" data-btn-ok-label="Delete" data-btn-ok-icon="fa fa-remove"
   data-btn-ok-class="btn btn btn-danger" data-btn-cancel-label="Cancel"
   data-btn-cancel-icon="fa fa-chevron-circle-left" data-btn-cancel-class="btn btn btn-default"
   data-title="Are you sure you want to delete ?" data-placement="left" data-singleton="true">Delete </a>

1 个答案:

答案 0 :(得分:0)

Route::resource('subscriptions','SubsController');

创建一个destroy方法,该方法要求请求类型为DELETE。 例如 路线:: delete(subscriptions / destroy','SubsController @ destroy');

要这样做,您将必须填写表格并发送如下的DELETE请求。

<form action="{{ route('routename',$parameter) }}" method="POST">
    {{csrf_field()}}
    {{method_field('DELETE')}}
    <button type="submit" class="m-portlet__nav-link btn m-btn m-btn--hover-danger m-btn--icon m-btn--icon-only m-btn--pill"> <i class="glyphicon glyphicon-trash"></i></button>
</form>

通过

在控制台中检查您的路线
php artisan route:list

如果您不能这样做,  像这样从资源中删除销毁方法:

Route::resource('subscriptions','SubsController')->except('destroy');

现在它将不包含destroy方法。现在,您可以进行自己的获取请求的路由,并发送记录ID以将其删除