无法在laravel

时间:2017-07-11 09:09:48

标签: laravel eloquent soft-delete

我想知道为什么我无法在laravel中恢复软删除的数据。我已经做好了一切,但不确定我缺少什么,所以我无法恢复数据。

我的模特是

namespace App\Model\Clients;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class SocialAccounts extends Model{

   protected $table = 'social_accounts';
   use SoftDeletes;
   protected $dates = ['deleted_at'];
}

我使用过软删除特征。为了恢复我的软删除数据,我正在做类似下面的事情

$restoreAccount = SocialAccounts::withTrashed()->find($id)->restore();

但它没有恢复数据,我假设当我们恢复数据laravel NULL的deleted_at列,但它没有更新该id的任何内容

我也试过

//second alternate method 
$restoreAccount= SocialAccounts::withTrashed()->find($id)->update(['deleted_at' => NULL]);

//Third alternate method
$restoreAccount = SocialAccounts::withTrashed()->find($id); 
$restoreAccount->deleted_at = NULL;
$restoreAccount->save();

我不确定我在做什么错,我们可以做些什么来实现恢复?我检查了官方的laravel文档,并遵循相同的。

2 个答案:

答案 0 :(得分:0)

$ restoreAccount = SocialAccounts :: onlyTrashed() - > find($ id) - > restore();

答案 1 :(得分:0)

我不知道你是否已经找到了答案,但也许你可以在你的控制器中试试这个

public function restore($id) 
{
    $restoreAccount = SocialAccounts::onlyTrashed()->->where('id', $id)->restore();
    return redirect()->route('your.route');
}