Search code examples
phplaravellaravel-permission

belongsToMany error in laravel spatie permission?


My code is working 1 year ago, but now i got an error when i update my composer. I used laravel package from laravel-spatie.

"spatie/laravel-permission": from 1.16.1 updated to 1.3.0,

laravel version : laravel 5.2

FatalThrowableError in BelongsToMany.php line 599:
Type error: Argument 1 passed to Illuminate\Database\Eloquent\Relations\BelongsToMany::save() 
must be an instance of Illuminate\Database\Eloquent\Model, array given, called in 
/var/www/html/mto-erp/vendor/spatie/laravel-permission/src/Traits/HasPermissions.php on line 18

Controller

$user = User::where('partner_id',$id)->first();
$permission = Permission::where('name','LIKE','accounting_%')->select('name')->get();
$permission = $permission->pluck('name')->toArray();
$user->revokePermissionTo($permission);
if(Input::get('permissions')){
   $user->givePermissionTo(Input::get('permissions'));
}

laravel permission package - spatie/laravel-permission


Solution

  • I think there's something wrong of spatie/permission version 1.3. I also encountered that problem .
    Try to install spatie/permission version 1.16* that fixed my problem.