2

我一直在为 Laravel 5.2 开发一个自定义包,现在我正在实施身份验证。

我尝试将 Auth 文件夹添加到我的资源/视图目录以及我的包目录中需要的具有适当名称空间的控制器。它击中控制器,但没有看到视图,因为它返回一个错误,指出 [auth.login] 未找到。

我尝试将属性覆盖添加到 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 视图、路由等的最佳实践/正确方法是什么,以便它可以拥有自己的管理区域?

4

1 回答 1

1

有许多策略,这取决于应用程序是什么(以及有多大)。我可以给你一个命名的例子。

Views: {package-name}::{area}.{module}-{submodule?}.{action}
Routes: {package-name}.{area}.{module}-{submodule?}.{action}
Config: {package-name}.{area}.{rest-of-config-key}

让我解释:

  1. {package-name}- 你应该总是把你每次都知道 view/route/config 来自哪个包的前面。

  2. {area}- 例如可以是:adminand userand frontor restrictedand open。它将描述用户的访问级别(例如前端不需要登录用户)。这部分特别适用于创建路由组和过滤器(但也适用于协调系统的每个元素)。

  3. {module}并且{submodule}- 将告诉您您所处的业务逻辑类型。

  4. {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')

这也可用于设计文件的结构(视图和控制器以及您在此约定中使用的任何其他应用程序逻辑)。

请记住,这只是设计的基础,因此您可以随意重新设计它。

于 2016-09-02T13:09:22.063 回答