我尝试按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>
- 路线**
Route::post('/status/{statusId}/delete', [
'uses' => '\Dashboard\Http\Controllers\StatusController@deleteStatus',
'as' => 'status.delete',
'middleware' => ['auth'],
]);
- 主计长**
public function deleteStatus(Request $request, $statusId)
{
Auth::user()->statuses()->delete($statusId);
return redirect()->route('home')->with('success', 'Post deleted.');
}
- 注意:**当我
dd($statusId)
时,它确实为我正在删除的状态提供了正确的ID。因此,该部分确实有效。
- 注意:**当我
4条答案
按热度按时间gcuhipw91#
这在Laravel 5.6中可以使用destroy方法实现:
来自文档:
但是,如果您知道模型的主键,您可以删除模型而不检索它。
或删除ID数组:
或通过查询:
ca1c2owp2#
不幸的是,Eloquent构建器不支持将id传递给
delete
。相反,你必须先找到模型,然后在它上面调用
delete
:c90pui9n3#
您可以使用另一种方法删除模型,如
但是它抛出了
nullPointerException
,你必须处理hts6caw34#