Laravel套餐中的Auth路线/视图?

时间:2016-09-02 12:35:44

标签: php laravel laravel-5 laravel-authorization

我一直在为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视图,路由等的最佳实践/正确方法是什么,以便它可以拥有自己的管理区域?

1 个答案:

答案 0 :(得分: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} - 您应该始终将每个视图/路由/配置所包含的内容都放在前面。

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

  3. {module}{submodule} - 将告诉您自己处于何种业务逻辑。

  4. {action} - 只是控制者行动的名称

  5. 所以这里有相同的例子:

    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')
    

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

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