Laravel 9路线组有两个条件

发布于 2025-02-06 14:24:04 字数 189 浏览 1 评论 0原文

在我的用户表中,我有一个字段(布尔值):

活动

目前使用我的路线

Route::middleware(['auth'])->group(function ()

,但我想做的就是添加活动,以便必须授权和活动。

我似乎找不到答案。

提前致谢!

In my users table I have a field (boolean):

active

My routes currently use

Route::middleware(['auth'])->group(function ()

but I want to do is to add the active so they will have to be authorised and active.

I can't seem to find the answer.

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

也只是曾经 2025-02-13 14:24:04

将另一个中间件添加到组中。

Route::middleware(['auth','active'])->group(function ()

您可以

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class Active
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse)  $next
     * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
     */
    public function handle(Request $request, Closure $next)
    {
        if (!$request->user()->active){
            return redirect('login');
        }
        return $next($request);
    }
}

像显然需要在应用程序/http/kernel.php中注册此中间件

protected $routeMiddleware = [

 ....
  'active' => \Illuminate\Auth\Middleware\Active::class,

]

一样实现该中间件

Add another middleware to group.

Route::middleware(['auth','active'])->group(function ()

You can implement that middleware like

<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class Active
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure(\Illuminate\Http\Request): (\Illuminate\Http\Response|\Illuminate\Http\RedirectResponse)  $next
     * @return \Illuminate\Http\Response|\Illuminate\Http\RedirectResponse
     */
    public function handle(Request $request, Closure $next)
    {
        if (!$request->user()->active){
            return redirect('login');
        }
        return $next($request);
    }
}

Obviously you need to register this middleware into app/Http/Kernel.php

protected $routeMiddleware = [

 ....
  'active' => \Illuminate\Auth\Middleware\Active::class,

]

I hope this help

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文