我一直在为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软件包中设置Auth视图,路由等的最佳实践/正确方法是什么,以便它可以拥有自己的管理区域?
答案 0 :(得分: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
。它将描述用户访问的级别(例如,前端不需要登录用户)。这部分特别适用于创建路径组和过滤器(但也用于协调系统的每个元素)。
{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')
这也可用于设计文件的结构(视图和控制器以及您在此约定中使用的任何其他应用程序逻辑)。
请记住,这只是设计的基础,因此您可以随心所欲地重新设计它。