2

我是 Laravel 的新手,我正在尝试向从 Auth::user() 返回的用户变量添加更多信息

更详细地说,我与“特权”表存在多对多关系。顾名思义,该表拥有用户可以拥有的特定权限。在数据透视表中,我只保存了 user_id 和 privilege_id。我已经设置了必要的模型,如果我在之前的过滤器中执行此操作,一切正常:

$user = Auth::user(); 
$user->priviledges()->get();

现在,我真的很想避免每次我想查找权限时都查询,并且希望 Laravel 的 Auth 类包含权限信息,这样当我这样做时

$user = Auth::user(); 

我可以做一个

$user->privileges;

获取用户拥有的所有权限的数组。

对最佳方法有什么建议吗?

4

2 回答 2

2

上面答案的链接不起作用。但是,我在这里找到了另一个对我有用的解决方案,如下所示:

首先,我在自己的案例中创建了一个名为 EmailPref.php 的模型;

应用程序/模型/EmailPref.php

class EmailPref extends Eloquent {
      protected $table = 'email_pref';

      public function user()
      {
         return $this->belongsTo('User');
      }
}

然后我像这样在 User 模型中创建了一个关系(在我自己的情况下);

应用程序/模型/User.php

    public function emailPref()
    {
        return $this->hasOne('EmailPref');
    }

我随后在我的应用程序中所需的任何地方引用它,如下所示:

    Auth::user()->emailPref;

因此,我能够向 Auth 用户添加更多信息。

于 2014-12-11T13:03:57.777 回答
-3

我不是 Laravel 专业人士,但我认为这会解决你的问题:http ://forums.laravel.io/viewtopic.php?id=1652

于 2013-01-10T07:22:22.090 回答