[英]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.