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是的,我犯了个愚蠢的错误;看看我的答案。谢谢你的帮助。:)