如何在laravel中编写这个有说服力的查询,以便在本例中加载用户模型和概要文件模型之间的关系模型?我试图避免两个单独的问题。
我觉得我很亲近,但有些事情不太对劲。
$author = User::where('id', $id)->with('profile')->get();
集合正在正确返回用户详细信息。但它显示的配置文件关系为空。
# relations: array:1 [▼
"profile" => null
]
我相信我有一个正确的设置与用户模型和配置文件所需的关系。
用户.php
public function profile()
{
return $this->hasOne('App\AuthorProfile', 'user_id');
}
authorprofile.php文件
public function user()
{
return $this->belongsTo('App\User');
}
3条答案
按热度按时间zmeyuzjn1#
kq4fsx7k2#
假设authorprofile模型表中有id为user的记录就可以了。
不管你怎么写:
我试图避免两个单独的问题。
好吧,这不是真的,如果你有一个单一的记录,急于加载不会有任何帮助。在这种情况下,将执行2个查询-无论您使用或不使用急切加载。
如果您有多个用户,并且每个用户都希望加载配置文件,那么快速加载会有所帮助,但如果您只有一条记录,则不会更改任何内容。
另外,代替:
您应该使用:
因为你希望这里只有一个用户。
ccrfmcuu3#
您的模型应该是这样的。配置文件表上的用户id和用户表上的id