【发布时间】:2022-10-20 16:16:02
【问题描述】:
我将 Laravel 8 与 Jetstream 一起使用。我的网站有用户。这些用户与许多机构相关,因此他们在站点内具有不同的角色,因此我制作了一个播种器,在其中创建角色和用户以及机构;一切都很好。我在刀片视图中使用指令@can 向不同角色显示和隐藏信息。尽管如此,这里它没有显示任何内容。尽管我与管理员在一起,但它并没有显示它应该显示的内容。
模型
class UserInstitutions extends Model
{
use HasFactory;
use HasRoles;
protected $primaryKey = 'user_id';
public $incrementing = false;
protected $guard_name = 'web';
public function user() {
return $this->belongsTo(User::class);
}
public function institution() {
return $this->belongsTo(Institution::class,'institution_id_f');
}
}
播种机
class RoleSeeder extends Seeder
{
public function run()
{
$admin = Role::create(['name' => 'Administrador']);
$titular = Role::create(['name' => 'Titular']);
$coor = Role::create(['name' => 'Coordinador']);
$subcoor = Role::create(['name' => 'SubCoordinador']);
$int = Role::create(['name' => 'Integrante']);
Permission::create(['name' => 'home.dashboard']);
Permission::create(['name' => 'dashboard']);
Permission::create(['name' => 'institution.index']);
Permission::create(['name' => 'institution.create']);
Permission::create(['name' => 'institution.update']);
Permission::create(['name' => 'institution.delete']);
$admin->syncPermissions(Permission::all());
$coor->givePermissionTo('institution.index');
$coor->givePermissionTo('institution.create');
}
}
我分配角色的播种机
class UserInstitutionSeeder extends Seeder
{
public function run()
{
$institution = Institution::all()->random();
$user = User::all()->random();
UserInstitutions::create([
'user_id' => $user->id,
'institution_id_f' => $institution->id,
'institution_id' => $institution->institution_id,
'email' => 'pcoordinador@gob.sv',
'landline_phone_number' => '74859632',
'start_date' => now(),
'active' => 'S',
])->assignRole('Administrador');
UserInstitutions::factory(5)->create();
}
}
如果我检查表中的数据,则正在分配角色 enter image description here
【问题讨论】: