【问题标题】:Adding more info to Laravel's auth user向 Laravel 的 auth 用户添加更多信息
【发布时间】:2012-12-24 10:16:27
【问题描述】:

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

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

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

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

$user = Auth::user(); 

我可以做一个

$user->privileges;

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

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

【问题讨论】:

  • 嗨@Steve,您对此问题的解决方案是什么。下面的链接对我没有帮助。

标签: authentication laravel


【解决方案1】:

上述答案的链接无效。但是,我找到了另一个解决方案here,它对我有用,如下所示:

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

app/model/EmailPref.php

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

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

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

app/model/User.php

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

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

    Auth::user()->emailPref;

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

【讨论】:

  • 这可能是最好的答案,但我希望 Laravel 能简单地返回这些关系以及 Auth::user() 的返回值,因为我有那个 Auth::user() 调用我在不同控制器中的项目。
【解决方案2】:

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

【讨论】:

  • 谢谢,这正是我想要的。
  • 链接已被删除,请更新答案
  • 这个答案没有帮助我找到解决问题的方法。链接已失效,没有任何解释。
猜你喜欢
  • 2017-03-07
  • 2020-05-15
  • 2015-04-29
  • 2019-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-12
  • 2019-11-30
相关资源
最近更新 更多