小编adr*_*adi的帖子

控制器Laravel 5.4中的多个中间件

我想__construct在我的控制器中使用方法中的两个中间件.我最近几个小时在谷歌搜索,但没有找到任何有用的资源.

这是我__construct的中间件:

public function __construct()
{
    $this->middleware('adminuser');
    $this->middleware('generaluser')->only('quizDetails','validateQuiz','attemptQuiz','submitQuiz','saveAnswer','setIndividualTime');
}
Run Code Online (Sandbox Code Playgroud)

我想为普通用户提供访问那些generaluser中间件方法.我是怎么做到的?

请帮我解决这个问题.

谢谢

middleware laravel laravel-5 laravel-5.4

5
推荐指数
2
解决办法
3302
查看次数

路由中的 Laravel 多个中间件具有 OR 条件

我想知道我是否可以在 Laravel Route 中做到这一点。假设我有Admin,PremiumUser(也可以通过使用登录Auth)中间件。另外,我的控制器有这样的方法:index, create, edit,delete我希望Admin能够做所有这些事情,但Premium只能访问index方法,User不能访问这个控制器中的任何东西(他可以访问另一个控制器)。我知道我可以使用exceptonly这样的中间件方法:

    public function __construct()
    {
    $this->middleware('premium')->only('index');
    $this->middleware('admin'); 
    // or maybe $this->middleware('admin')->except('index');
    }
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将这两个中间件放在__construct方法中时,它们会开始相互冲突,这是有道理的,因为索引方法可以被访问,Premium Member但不能被Admin它本身访问。顺便说一句,我的中间件只是在检查:

    if (Auth::check()) {
        if (Auth::user()->role == 'Admin') {
            return $next($request);
        }
     }
    return redirect('/home');
Run Code Online (Sandbox Code Playgroud)

所以,回到我的问题,我可以有 OR 中间件,这样我就可以避免来自多个中间件的冲突(当它们在同一个控制器构造函数中编写时必须是 AND 条件)?

非常感谢。

php if-statement boolean middleware laravel

5
推荐指数
2
解决办法
8555
查看次数

Laravel Mix 编译资源后还需要 node_modules 文件夹吗?

node_modules文件夹的大小相当大。我想知道 Laravel Mix 编译完所有内容后是否可以删除它?当然,我之前尝试过(安装jquery),然后在 Laravel Mix 编译完所有内容后删除 node_modules 文件夹。我的jquery代码仍在运行,没有任何错误。那么可以吗?

npm laravel node-modules webpack laravel-mix

5
推荐指数
2
解决办法
4141
查看次数