Laravel 为什么这个雄辩的关系在foreach循环中返回null?

Laravel 为什么这个雄辩的关系在foreach循环中返回null?,laravel,eloquent,Laravel,Eloquent,我有一段行为怪异的恋情。如果我得到结果并dd(),则它具有正确的数据。但是,如果我通过foreach循环运行集合,就好像关系消失了一样 users表有一个名为referenced\u by的字段,该字段存储推荐用户的人的用户ID。在我的例子中,我正在查找ID为3的用户所引用的所有新用户 下面是User.php public function referrer() { return $this->belongsTo(User::class, 'referred_by'); } 下面

我有一段行为怪异的恋情。如果我得到结果并
dd()
,则它具有正确的数据。但是,如果我通过
foreach
循环运行集合,就好像关系消失了一样

users
表有一个名为
referenced\u 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
}
试一试

foreach($users as $user)
{
    // dd($user) here returns the relationship, as it should

    dd($user['referrer'])
}
不如

 // dd($user->referrer)
试一试

foreach($users as $user)
{
    // dd($user) here returns the relationship, as it should

    dd($user['referrer'])
}
不如

 // dd($user->referrer)

原来我在
users
表中有一个名为
referer
的数据库列,这导致了一个问题。我将关系的方法名从
referer()
更改为
referedby()
,结果成功了*eyeroll*

结果是,我在
users
表中有一个名为
referer
的数据库列,它导致了一个问题。我将关系的方法名从
referer()
更改为
referedby()
,结果成功了*eyeroll*

请发布
dd($users)的输出,并在for循环中
dd($user)
dd($user->referer)这很奇怪。我无法用你的确切密码复制这个。看@Mozammil是的,我犯了个愚蠢的错误;看看我的答案。谢谢你的帮助。:)请发布
dd($users)的输出,并在for循环中
dd($user)
dd($user->referer)这很奇怪。我无法用你的确切密码复制这个。看@Mozammil是的,我犯了个愚蠢的错误;看看我的答案。谢谢你的帮助。:)