![](/img/trans.png)
[英]Is there any function that restore soft deleted record from repository design pattern?
[英]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.