Laravel Eloquent有很多只返回一个结果吗?

时间:2017-02-04 21:04:35

标签: php laravel-5 eloquent

因此,我的Client模型与hasMany模型之间存在Project关系,因为client表中的每个客户都与projects中的许多项目相关联}表。

方法如下:

Client.php:

public function projects()
{
    return $this->hasMany('App\Projects', 'id', 'project_id');
}

看起来很简单。但是当我从控制器尝试这个时:

$projects = Client::find(1)->projects()->get()

我只得到一个结果,第一个结果,来自Project模型,应该有大约六打。 如果我将发送的整数更改为find(),甚至会发生这种情况。

所以Eloquent每次都会返回项目表的第一行。为什么这样做和/或我如何获得所有相关结果?

1 个答案:

答案 0 :(得分:0)

Laravel Documentation中将hasMany(或one-to-many)关系定义为

  

A"一对多" relationship用于定义单个模型拥有任何数量的其他模型的关系。

在这种情况下,Many只表示一个或多个。

我假设每个项目都有一个client_id引用。在这种情况下,将projects()功能更改为

return $this->hasMany('App\Projects', 'client_id');

应该适合你。