【发布时间】:2020-09-15 11:16:53
【问题描述】:
我在我的 laravel 项目中使用 spatie/laravel-menu 和 spatie/laravel-permissions。
我创建了一个权限,将其分配给一个角色,并将该角色分配给我的用户。这工作正常。 然后我使用这样的宏以中间件方式生成了一个菜单:
\Menu::macro('main', function () use ($request) {
return \Menu::new()
->withoutWrapperTag()
->withoutParentTag()
->setActiveClassOnLink()
->route('preparation', 'Anstehende Termine')
->route('postprocessing', 'Nachbereitung')
->routeIfCan('administrate', 'protocols', 'Protokolle')
->addItemClass('nav-link')
->setActive($request->url());
});
在我的应用程序中,我有两个具有不同连接的用户模型:
App\User; 将 connection_a 与数据库 db_a 和
App\DirectoryA\User; 使用 connection_b 和数据库 db_b
在 auth 配置中定义了第一个,并且使用 Auth::user()->can('administrate') 可以正常工作,即使在定义菜单的中间件中也是如此。
由于我通过routeIfCan 添加了菜单项,因此出现错误。它告诉
未找到基表或视图:1146 表 'db_b.permissions' 不存在(SQL:选择
permissions.*、model_has_permissions.model_idaspivot_model_id、model_has_permissions.permission_idaspivot_permission_id,model_has_permissions.model_typeaspivot_model_typefrompermissionsinner joinmodel_has_permissionsonpermissions.id=model_has_permissions.permission_id@987645434@ =@9876454341@ 1 和model_has_permissions.model_type= 应用\用户)
这里出了什么问题?它应该使用App\User 模型。在框架抛出异常的地方放置一个dd(),向我展示了正确的连接......
请帮忙。
【问题讨论】:
标签: php laravel menu laravel-permission