Я использую зависимость Zizaco/entrust для создания ролей и их разрешений в моем веб-приложении, которое создается в laravel 5.3. Проблема, с которой я столкнулась, - это (как говорится в заголовке) всякий раз, когда я пытаюсь сохранить недавно созданное разрешение. Он хранится в таблице roles
.Zizaco/entrust Разрешение на сохранение использует таблицу ролей
Файл миграции не был изменен с исходного пакета zizaco/entrust. Для создания миграции я использовал php artisan vendor:publish
. Модели роли и разрешения вполне как документация говорит:
namespace App\Models;
use Zizaco\Entrust\EntrustRole;
class Role extends EntrustRole
{
protected $table = 'roles';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'display_name', 'description',
];
}
И разрешение
namespace App\Models;
use Zizaco\Entrust\EntrustRole;
class Permission extends EntrustRole
{
protected $table = 'permissions';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'display_name', 'description',
];
}
и в файле сеялка, я использую следующий код для создания роли и сеялки:
use App\Models\Permission;
use App\Models\Role;
use Illuminate\Database\Seeder;
class RoleSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$owner = new Role();
$owner->name = 'owner';
$owner->display_name = 'Eigenaar';
$owner->save();
$createOwner = new Permission();
$createOwner->name = 'create-owner';
$createOwner->display_name = 'Eigenaar toevoegen';
$createOwner->save();
}
Конфигурационный файл поручения также изменяется на правильный путь для модели Role and Permission и таблиц.
Я пробовал компоновщик дамп-автозагрузка и даже кеш php-artisan: ясный.
Есть ли что-то, что я пропустил? пожалуйста помоги. Прошу простить мой английский, если он не является грамматически правильным.
EDIT: когда я пытаюсь прикрепить свое разрешение на роль следующей строки:
$owner->attachPermission($createOwner);
я получаю Ошибку SQL:
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fail s (
reunions_dev
.permission_role
, CONSTRAINTpermission_role_permission_id_foreign
FOREIGN KEY (permission_id
) REFERENCESpermissions
(id
) ON DELETE CASCADE ON UPDATE CASCADE)
, что не потому, что там нет записи разрешения для привязки идентификатора к. вид очевидный.
ThankYou для принятия взгляда на моем коде. Я не могу поверить, что раньше этого не видел! Теперь я получаю еще одну ошибку. когда я пытаюсь инициализировать его в классе сеялки, я продолжаю получать ошибку: 'Обязательный параметр $ auth missing', вы знаете, как я могу это исправить? – Hoffie