【发布时间】:2018-02-12 04:13:39
【问题描述】:
如何防止在用户软删除时分离角色?$user->hasRole('subscriber') => true$user->delete()$user->hasRole('subscriber') => false$user->restore()
@987654325 @ => 错误
【问题讨论】:
标签: laravel laravel-5 laravel-5.4 entrust
如何防止在用户软删除时分离角色?$user->hasRole('subscriber') => true$user->delete()$user->hasRole('subscriber') => false$user->restore()
@987654325 @ => 错误
【问题讨论】:
标签: laravel laravel-5 laravel-5.4 entrust
查看EntrustUserTrait 第 69-80 行。
/**
* Boot the user model
* Attach event listener to remove the many-to-many records when trying to delete
* Will NOT delete any records if the user model uses soft deletes.
*
* @return void|bool
*/
public static function boot()
{
parent::boot();
static::deleting(function($user) {
if (!method_exists(Config::get('auth.model'), 'bootSoftDeletes')) {
$user->roles()->sync([]);
}
return true;
});
}
如果你没有bootSoftDeletes,我认为你不要使用 Laravel 自己的 SoftDeletes trait。
class User extends Authenticatable
{
use SoftDeletes;
use EntrustUserTrait;
...
【讨论】: