我是Laravel的新手,我正在尝试向我从Auth :: user()返回的用户变量中添加更多信息
更详细一点,我与“权限”表有多对多的关系。顾名思义,该表包含用户可以拥有的特定权限。在数据透视表中,我只持有user_id和privilege_id。我已经设置了必要的模型,如果我在之前的过滤器中执行此操作,一切正常:
$user = Auth::user();
$user->priviledges()->get();
现在,我真的想避免每次想要查找权限时查询,并且希望Laravel的Auth类包含权限信息,以便在我做的时候
$user = Auth::user();
我可以做一个
$user->privileges;
获取用户拥有的所有权限的数组。
有关最佳方法的任何建议吗?
答案 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