我的一段感情很奇怪。如果我得到结果和dd()
,则它具有正确的数据。但是,如果我通过foreach
循环运行该集合,就好像该关系消失了。
users
表具有一个名为referred_by
的字段,该字段存储推荐用户的人的用户ID。在我的实例中,我正在寻找ID为3
的用户所推荐的所有新用户。
这是User.php
public function referrer()
{
return $this->belongsTo(User::class, 'referred_by');
}
这是返回时髦结果的代码
$users = User::where('referred_by', 3)
->with('referrer')
->get();
// doing dd() here returns a collection with full referrer relationship;
// the returned data is as expected
dd($users);
foreach($users as $user)
{
// dd($user) here returns the relationship, as it should
// dd($user->referrer) here returns null, like the relationship doesn't exist
}
答案 0 :(得分:0)
尝试
foreach($users as $user)
{
// dd($user) here returns the relationship, as it should
dd($user['referrer'])
}
然后
// dd($user->referrer)
答案 1 :(得分:0)
结果证明,在users
表上有一个名为referrer
的数据库列,这引起了问题。我将关系的方法名称从referrer()
更改为referredBy()
,并成功了。 *眼球*