在laravel中将结果限制为经过身份验证的用户的最佳方法?

时间:2015-08-10 13:44:42

标签: php laravel model

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

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

但是,如何为客户端设置编辑路由,而其他用户无权访问。目前我有:

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

这很好用,但我喜欢findOrFail()功能的工作原理,而且它很简单。

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

1 个答案:

答案 0 :(得分:1)

$clients = Auth::user()->clients();

如果您在用户模型中设置了正确的hasmany关系,则应该有效。我将添加到User模型的关系是(假设客户端模型是Client.php):

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

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