我在Laravel的sofdelete有问题.. 在我的销毁方法中:
public function destroy($id)
{
$sessions = DB::table('sessions')->where('id','=', $id);
$sessions->delete();
Session::flash('flash_message', 'it works !');
return redirect()->route('sessions.index');
}
它没有进行软删除... 如果我使用eloquent更改请求:
$sessions = Sessions::findOrFail($id);
$sessions->delete();
我有:抱歉,找不到您要找的页面。
在我看来,我创建了表单
{!! Form::open([
'method' => 'DELETE',
'route' => ['sessions.destroy', $session->id]
]) !!}
{!! Form::submit('delete?', ['class' => 'btn btn-danger']) !!}
{!! Form::close() !!}
我不知道为什么它不起作用...... 谢谢你的帮助
答案 0 :(得分:2)
您说当您使用DB::table('sessions')
时,它会删除记录,当您使用Sessions::
时,它不会
我认为你不明白软删除是什么。
当您使用DB::table('sessions')
时,该记录将被删除而不会被软删除。
当您使用Session::
时,记录会保留在那里,但Eloquent会添加deleted_at
时间戳。
来自the docs:
模型被软删除后,实际上并未从数据库中删除它们。而是在模型上设置
deleted_at
属性并将其插入到数据库中。如果模型具有非空deleted_at
值,则模型已被软删除。
答案 1 :(得分:0)
会话是laravel的外观所以它可能会为您创造问题。请参考以下链接 https://laravel.com/docs/5.6/session