0

我想知道 laravel 是如何找到的以及它是如何工作的,比如 realtions 方法

(1:1 & 1:M)


例如,在用户模型中,我与我的帖子模型有一对多的关系

public function posts(){
return $this->hasMany(Post::class);
}

当我想获取一些用户帖子数据时,我将使用此代码

$user = User::find(1);
$user->posts();

这是我的问题 $user->posts(); laravel 如何找到并重新爱上它

4

1 回答 1

0

hasMany只是 Eloquent 为流畅地查询数据库提供的关系之一。使用正确的列名和表名,使用这些关系,您可以轻松构建逻辑结构,而无需深入复杂的查询。

当你使用 ahasMany时,Eloquent 知道你查询的模型可以有 n 个相关模型,并且会返回一个集合。它知道如何使用模型和方法名称进行查询。因此,由于您的用户有hasManyfor 帖子,Eloquent 将user_idposts表上进行查询。

例如,当您在 a 上转储查询日志时hasMany,它将返回以下内容:

select * from `posts` where `posts`.`user_id` in (1)

如果你急切地加载它,Eloquent 会自动将它附加到你的模型中: User::with('posts')->find(1)

我建议阅读有关关系的文档,以了解 Laravel 和 Eloquent 假设构建查询的内容。

于 2021-06-17T07:07:51.270 回答