Php Laravel按id雄辩删除

Php Laravel按id雄辩删除,php,laravel,Php,Laravel,我试图按id删除一条记录。相反,它会删除该表中的所有记录 这是我的密码: 查看 <form role="form" action="{{ route('status.delete', ['statusId' => $status->id]) }}" method="post"> <button type="submit" class="btn btn-default"><i class="fa fa-times"></i> De

我试图按id删除一条记录。相反,它会删除该表中的所有记录

这是我的密码:

查看

<form role="form" action="{{ route('status.delete', ['statusId' => $status->id]) }}" method="post">
    <button type="submit" class="btn btn-default"><i class="fa fa-times"></i> Delete</button>
    <input type="hidden" name="_token" value="{{ Session::token() }}">
</form>
控制器

public function deleteStatus(Request $request, $statusId)
{
    Auth::user()->statuses()->delete($statusId);

    return redirect()->route('home')->with('success', 'Post deleted.');
}

注意:当我
dd($statusId)
它确实为我正在删除的状态提供了正确的ID。因此该部分确实有效。

不幸的是,雄辩的构建器不支持将id传递给
delete

相反,您必须首先找到模型,然后在其上调用
delete

$request->user()->statuses()->findOrFail($statusId)->delete();

这在Laravel 5.6中可以使用销毁方法:

从:

但是,如果您知道模型的主键,则可以删除 没有检索它的模型。为此,请调用destroy方法

或删除ID数组:

App\Model::destroy([1, 2, 3]);
或查询:

App\Model::where('active', 0)->delete();

啊,我现在明白了,我想你可以把身份证传给它,谢谢你的帮助,现在一切正常!您可以将id传递给
destroy
,而不是
delete
。销毁将忽略
删除
删除
事件。
App\Model::destroy([1, 2, 3]);
App\Model::where('active', 0)->delete();