Я использую spatie / laravel -menu и spatie / laravel -persmissions в моем laravel проекте.
Я создал разрешение, назначил его роли и назначил роль моего пользователя. Это прекрасно работает. Затем я создал меню способом промежуточного программного обеспечения, используя такой макрос:
\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());
});
В моем приложении у меня есть две модели User с разными подключениями: 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_id
как pivot_model_id
, model_has_permissions
. permission_id
как pivot_permission_id
, model_has_permissions
. model_type
как pivot_model_type
из permissions
внутреннее соединение model_has_permissions
на permissions
. id
= model_has_permissions
. permission_id
где model_has_permissions
. model_id
= 1 и model_has_permissions
. model_type
= App \ User)
Что здесь не так? Следует использовать модель App\User
. Размещение dd()
в точке, где фреймворк выдает исключение, показывает мне правильное соединение ...
Пожалуйста, помогите.