簡體   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