Nikepn911
@Nikepn911
Web-developer

Как правильно организовать доработку админ пакета tcg/voyager?

Сразу хочу сказать, что будет много текста, laravel я ещё изучаю, и многих тонкостей не знаю, поэтому могу ошибаться в своих рассуждениях. Я больше задаю этот вопрос, людям которые давно работают с laravel и имеют большой опыт с ним.

Админ пакет tcg/voyager реализуется на некоторых базовых моделях фреймворка laravel, исходя из этого у меня возникла необходимость доработать некоторые базовые модели - возьмём к примеру модель users. Я добавил в неё SoftDeletes, и наследовал ее от модели users, непосредственно voyager пакета, настроил конфиги, все заработало с моей доработкой, но базовый виджет UserDimmer перестал работать так как он работает на user модели voyager. Немного покопавшись в исходниках и документации пакета, я разобрался и решил сделать свой виджет на основе моей модернизированной модели users, сделал новый виджет и все работает. Но есть одна загвоздка - я не уверен, что такой способ правильный, с точки зрения организации структуры файлов, их назначения и решения задачи by laravel way. Поделитесь пожалуйста советом и примерами, как бы вы решили эту, в целом, не сложную задачу, но скажем так «правильно» все оформив.

Ниже на скриншотах, пример моей реализации структуры файлов и сам код - пришлось сделать потомка CustomVoyager (так и не смог определить чем он является согласно архитектуры laravel, и в какую папку его определить) от оригинального класса приложения Voyager, который при инициализации, изменяет его свойство - массив базовых моделей приложения models, и вызывает его Facade, что бы определить, можно ли показывать данный виджет пользователю или у него нет прав на это, в моем случаем инициализация CustomVoyager происходит в моем виджете CustomUserDimmer.

60245b0122ff6693478804.jpeg
60245b1116ede583829021.jpeg
  • Вопрос задан
  • 216 просмотров
Решения вопроса 1
Nikepn911
@Nikepn911 Автор вопроса
Web-developer
Решение вопроса тут -
https://voyager-docs.devdojo.com/customization/ove...
Разобрался, нашел в документации то, что мне нужно, мало-ли кто будет искать - вот решение, в сервис провайдер переопределить базовую модель, которую использует Voyager, и тогда моя доработка, что я сделал выше НЕ НУЖНА ВОВСЕ, все так заработает!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
delphinpro
@delphinpro Куратор тега Laravel
frontend developer
А вы не пробовали просто добавить неймспейс вашего пользователя в настройках?
https://delphinpro.gitbook.io/voyager-ru/getting-s...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы