繁体   English   中英

在软删除上雄辩的restore()函数无法恢复

[英]Eloquent restore() function on soft deletes failing to restore

我最近在我的用户模型上添加了软删除,并且它的删除部分可以完美地工作,但是当我尝试还原时,出现一个错误,提示Call to a member function restore() on a non-object

我的恢复软删除用户的代码如下:

public function putActivateUser()
    {
        $user = Emp::onlyTrashed()->where('id', '=', Input::get('actEmpId'))->first();
        $user->restore();

        return Redirect::route('user_data')
        ->with('message', 'Bruker '.$user->user_name.' aktivert.');
    }

用户激活的形式:

{{ Form::open(array('url' => 'bassengweb/ressurect_user', 'method' => 'PUT')) }} 
        {{ Form::select('actEmpId', $deactEmps) }}
        {{ Form::submit('Aktiver Bruker') }}
{{ Form::close() }}

$ user上的dd由于某种原因返回null,但我不明白为什么。

尝试这个

Emp::withTrashed()->where('id','=',Input::get('actEmpId'))->restore();

显然,在表单中没有找到ID为ID的用户,并且其onlyTrashed范围为onlyTrashed 您应该检查查询(例如,运行DB :: getQueryLog())和数据库中的数据,但首先将方法更改为firstOrFail

$user = Emp::onlyTrashed()->where('id', '=', Input::get('actEmpId'))->firstOrFail();

如果未找到任何内容,它将抛出ModelNotFoundException ,因此您可以捕获它并执行所需的任何操作,从而避免在null错误上调用方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM