向Laravel的auth用户添加更多信息

时间:2013-01-10 04:42:47

标签: authentication laravel

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

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

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

现在,我真的想避免每次想要查找权限时查询,并且希望Laravel的Auth类包含权限信息,以便在我做的时候

$user = Auth::user(); 

我可以做一个

$user->privileges;

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

有关最佳方法的任何建议吗?

2 个答案:

答案 0 :(得分:2)

上述答案的链接不起作用。但是,我发现另一个解决方案here对我有用,如下所示:

首先,我在自己的案例中创建了一个名为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用户添加更多信息。

答案 1 :(得分:-3)

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