gpt4 book ai didi

laravel - 在中间件中使用 Auth::user

转载 作者:行者123 更新时间:2023-12-04 14:11:43 28 4
gpt4 key购买 nike

我正在尝试检查输入的 URL 是否与数据库中经过身份验证的用户 slug 相同。因此,如果用户访问 example.com/user/bob-smith 并且实际上是 Bob Smith 登录,则应用程序将让 Bob 继续,因为他在 User 表中的 slug 是 bob-smith。

我已经注册了中间件,但是当我这样做时

public function handle($request, Closure $next)
{
if($id != Auth::user()->slug){
return 'This is not your page';
}
else{
return $next($request);
}
}

我明白了

Class 'App\Http\Middleware\Auth' not found



我不确定如何在中间件中使用它。任何人都可以帮忙吗?

最佳答案

这很容易。您似乎没有为 Auth 导入命名空间正面。

因此要么添加

<?php namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\Auth; // <- import the namespace

class YourMiddleware {
...
}

在类声明之上或使用完全限定的类名内联

if ($id != \Illuminate\Support\Facades\Auth::user()->slug) { 

或者,您可以注入(inject) Guard构造函数中的实例

<?php namespace App\Http\Middleware;

use Closure;
use Illuminate\Contracts\Auth\Guard;

class YourMiddleware {

protected $auth;

public function __construct(Guard $auth)
{
$this->auth = $auth;
}

public function handle($request, Closure $next)
{
...
if ($id != $this->auth->user()->slug) {
...
}
}

关于laravel - 在中间件中使用 Auth::user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29785932/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com