【问题标题】:Best way to limit results to the authenticated user in laravel?将结果限制为 laravel 中经过身份验证的用户的最佳方法?
【发布时间】:2015-08-10 21:57:57
【问题描述】:

我正在为一个应用程序使用 Laravel 5.1,并且有两个模型。客户和用户。经过身份验证和登录的用户只能查看他们自己的客户端。这个查询很简单:

$clients = Client::where('user_id', Auth::user()->id)->get();

但是我怎样才能有一个客户端的编辑路由,其他用户无权访问。目前我有:

$client = Client::where('user_id', Auth::user()->id)->find($id);

这工作得很好,但我喜欢 findOrFail() 函数的工作原理,而且非常简单。

我应该在模型中添加自定义方法吗?

【问题讨论】:

    标签: php laravel model


    【解决方案1】:
    $clients = Auth::user()->clients();
    

    如果您在用户模型中设置了适当的 hasmany 关系,则应该可以使用。我要添加到用户模型的关系是(假设客户端模型是 Client.php):

    public function clients()
    {
        return $this->hasMany('App\Client');
    }
    

    这还假设您在客户端表中有一个名为“user_id”的外键。

    【讨论】:

      猜你喜欢
      • 2016-10-09
      • 2019-06-28
      • 2021-01-15
      • 1970-01-01
      • 2020-11-15
      • 1970-01-01
      • 1970-01-01
      • 2018-07-02
      • 1970-01-01
      相关资源
      最近更新 更多