首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel中间件访问受保护的值

Laravel中间件访问受保护的值
EN

Stack Overflow用户
提问于 2016-02-05 22:56:42
回答 1查看 790关注 0票数 1

我编写了自己的用户角色系统,但我不知道如何在中间件路由中实现验证。

中间件类正在对每个请求进行调用。

我提高了$request-> user (),但是我无法访问属性来验证用户是否拥有正确的权限。

我的中间件控制器如下所示:

代码语言:javascript
复制
namespace App\Http\Middleware;

use Closure;
use Activation;
use Cartalyst\Sentinel\Laravel\Facades\Sentinel;

class AccountMiddleware
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $user = Sentinel::findByCredentials([
            'login' => $request->user()->attributes['email']
        );
        ...
        return $next($request);
    }
}

它不起作用。

如果我尝试转储$request->user(),我可以看到所有的属性,但都是受保护的。我需要改变什么,才能让它发挥作用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-05 23:09:02

访问雄辩的模型属性是通过访问器完成的,在本例中是通过魔术法完成的。因此,您不需要通过$attributes属性数组访问它们,只需如下所示:

代码语言:javascript
复制
$request->user()->email;

上面的内容将返回用户电子邮件,因为Illuminate\Database\Eloquent\Model::__get方法已经自动获取指定的属性。

如果愿意,您甚至可以定义自己的存取器或变异器,以便在将属性值读取或写入数据库时修改属性值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35234945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档