【发布时间】:2021-05-27 11:44:06
【问题描述】:
您好,我正在尝试获取菜单及其子项以及分配给角色的权限。我怎样才能通过雄辩的关系来实现这一点。 表是角色、菜单、角色菜单。 用户只会看到他有权访问的那些菜单。
这是我的代码:
这是我的控制器方式
$menuList = Menu::tree()->with('roleMenus')->where('per_select','=',0);
这是模型
class Menu extends Model
{
use HasFactory;
protected $table = "menus";
protected $fillable = ['title', 'url', 'parent_id', 'sort_order'];
public function parent()
{
return $this->hasOne('App\Models\Menu', 'id', 'parent_id')->orderBy('sort_order');
}
public function children()
{
return $this->hasMany('App\Models\Menu', 'parent_id', 'id')->orderBy('sort_order');
}
public static function tree()
{
return static::with(implode('.', array_fill(0, 100, 'children')))->where('parent_id', '=', '0')->orderBy('sort_order', 'asc')->get();
}
public function roleMenus()
{
return $this->belongsToMany(Role::class);
}
}
【问题讨论】:
标签: laravel eloquent relationship eloquent-relationship