Мой код работает 1 год назад, но теперь я получаю сообщение об ошибке, когда обновляю файл composer. Я использовал пакет laravel от laravel-spatie.
"spatie/laravel-permission": с 1.16.1
обновлено на 1.3.0
,
версия ларавела: ларавель 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
Контроллер
$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 — spatie/laravel-разрешение
такая же ошибка. Думаю дело в пакете.
покажи код givePermissionTo()
и revokePermissionTo()
givePermissionTo
и revokePermissionTo() — это метод, предоставленный пакетом laravel-spatie. laravel-spatie-здесьМожете ли вы показать нам свой конструктор?
на самом деле мой код работает нормально, прежде чем я запущу composer install
Я думаю, что что-то не так с spatie/permission версии 1.3. Я тоже столкнулся с этой проблемой.
Попробуйте установить spatie/permission версии 1.16*, которая устранила мою проблему.
да вы правы! я понизил его до 1.16.1
и повторно запустил установку композитора, которая решила мою проблему.
Публиковать журналы ошибок на веб-сайте разработчиков? Это дает им возможность исправлять ошибки.
Попробуйте заменить
$permission = $permission->pluck('name')->toArray();
на$permission = $permission->pluck('name');