Auth Маршруты / Представления в Пакете Laravel?
Я разрабатывал пользовательский пакет для Laravel 5.2, и сейчас я нахожусь в точке, где я реализую аутентификацию.
Я попытался добавить папку Auth в мой каталог resources / views, а также необходимые контроллеры в каталоге моего пакета с соответствующими пространствами имен. Он попадает в контроллеры, но не видит представление, так как возвращает ошибку о том, что [auth.login] не найден.
Я попытался добавить свойства overides в AuthController следующим образом:
protected $loginView = 'packagename::auth.login';
protected $registerView = 'packagename::register.form';
protected $linkRequestView = 'packagename::link.request.view';
protected $resetView = 'packagename::reset.view';
Тем не менее, он все еще пытается поразить представления, расположенные в главном каталоге приложения Laravel, а не в пакете.
Каков наилучший метод / правильный способ настройки видов аутентификации, маршрутов и т. Д. В пакете Laravel, чтобы он мог иметь собственную область администратора?
1 ответ
Существует много стратегий, и это зависит от того, какое (и насколько большое) приложение. Я могу привести пример именования.
Views: {package-name}::{area}.{module}-{submodule?}.{action}
Routes: {package-name}.{area}.{module}-{submodule?}.{action}
Config: {package-name}.{area}.{rest-of-config-key}
Позволь мне объяснить:
{package-name}
- вы должны всегда указывать, что вы будете знать каждый раз, из какого пакета происходит просмотр / маршрутизация / конфигурация.{area}
- для примера может быть:admin
а такжеuser
а такжеfront
или жеrestricted
а такжеopen
, Он опишет уровень доступа пользователя (например, front не требует регистрации пользователя). Эта часть хороша особенно для создания групп маршрутов и фильтров (но также и для согласования каждого элемента системы).{module}
а также{submodule}
- расскажет вам, в какой бизнес-логике вы находитесь.{action}
- это просто название действия контроллера
Так что здесь у вас есть такие же примеры выше:
route('mypostpackage.admin.post.index')
route('mypostpackage.admin.post-comment.edit', [$id])
view('mypostpackage::admin.post.show') // in package: views/admin/post/index.blade.php
view('authpackage::restricted.user-address.edit')
Это также может быть использовано при разработке структуры файлов (представлений и контроллеров и любой другой логики приложения, которую вы можете использовать в этом соглашении).
Помните, что это просто основа для дизайна, поэтому вы можете переписать его как угодно.