-1

如何防止在用户软删除时分离角色?
$user->hasRole('subscriber')=> 真
$user->delete()
$user->hasRole('subscriber')=> 假
$user->restore()
$user->hasRole('subscriber')=> 假

4

1 回答 1

0

查看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 特征。

class User extends Authenticatable
{
    use SoftDeletes;
    use EntrustUserTrait;
    ...
于 2017-09-14T09:30:04.813 回答