Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Elounce或DB在Laravel中构建数据库查询_Php_Mysql_Laravel_Eloquent_Laravel 5.3 - Fatal编程技术网

Php 使用Elounce或DB在Laravel中构建数据库查询

Php 使用Elounce或DB在Laravel中构建数据库查询,php,mysql,laravel,eloquent,laravel-5.3,Php,Mysql,Laravel,Eloquent,Laravel 5.3,我需要你的帮助在Laravel中构建一个查询,雄辩或DB查询也可以 我的表名是Users 要查看数据库结构,请打开以下链接: 每个用户行都有两列参考\代码和参考\代码,这意味着每个用户都可以参考某人,并获得奖金,同样,同一用户也被某个人参考 我想返回用户详细信息中带有循环的页面上的信息,以及向他推荐此的用户的用户名。为了跟踪相同的数据,我在同一个表中创建了这两列,即:reference_code和refered_by_code 我不知道如何在一个查询中编写这个,或者如何组合两个查询以获得所需的

我需要你的帮助在Laravel中构建一个查询,雄辩或DB查询也可以

我的表名是Users

要查看数据库结构,请打开以下链接:

每个用户行都有两列参考\代码参考\代码,这意味着每个用户都可以参考某人,并获得奖金,同样,同一用户也被某个人参考

我想返回用户详细信息中带有循环的页面上的信息,以及向他推荐此的用户的用户名。为了跟踪相同的数据,我在同一个表中创建了这两列,即:reference_code和refered_by_code

我不知道如何在一个查询中编写这个,或者如何组合两个查询以获得所需的结果

我的控制器代码如下所示:

$obj_users = User::get();
$codes = [];
$referrers = [];

foreach( $obj_users as $referred_by_code )
{
   //Following fetches all user's referred_by_code's code
   $codes[] = $referred_by_code->referred_by_code;
}

foreach ($codes as $code) 
{
   //Following fetches usernames of the given referred_by_code's codes       
   $referrers[] = User::where('referral_code', $code)->first()->username;
}

return view('users.users', compact(['users', 'paginate', 'referrers']));
返回的$users变量为我提供了用户数据循环,但我不知道如何将这些引用者的用户名附加到该对象

我尽力描述我的水平,如果我所说的没有意义,请询问,我很乐意提供进一步的澄清


最佳

您可以将以下关系添加到
用户
模型中:

public function referredBy()
{
    return $this->belongsTo(User::class, 'referred_code', 'referral_code');
}
在控制器中,您可以使用:

$users = User::with('referredBy')->get();

return view('users.users', compact('users'));
@foreach ($users as $user)
   {{ $user->username }} referred by {{ $user->referredBy ? $user->referredBy->username : '-' }}
@endforeach
稍后在您的视图中,您可以使用:

$users = User::with('referredBy')->get();

return view('users.users', compact('users'));
@foreach ($users as $user)
   {{ $user->username }} referred by {{ $user->referredBy ? $user->referredBy->username : '-' }}
@endforeach

非常感谢Marcin Nabialek,您的解决方案不仅非常有效,而且代码质量给我留下了深刻的印象。再次感谢。@ChetanChitte很高兴我能帮忙:)