使用 eloquent 或 DB 在 Laravel 中构建数据库查询
Build database query in Laravel with eloquent or DB
我需要你的帮助来在 Laravel 中构建查询 eloquent 或数据库查询也可以。
我的 table 名字是 Users
要查看DB结构,打开下面link:
https://jsfiddle.net/vardaam/mvqzpb2j/
每个用户行有 2 列 referral_code 和 referred_by_code 这意味着每个用户都可以 推荐某人并获得类似的奖金同样的用户也被某人推荐。
我想要return 用户详细信息中带有循环的页面上的信息,以及向他介绍此内容的用户的用户名。为了跟踪相同的内容,我在相同的 table 中创建了这两列,即:referral_code 和 referred_by_code.
我不知道如何在 1 个查询中编写此内容或如何组合 2 个查询并获得所需的结果。
我的控制器代码如下所示:
$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']));
returning $users 变量为我提供了用户数据循环,但我不知道如何将这些推荐人的用户名附加到该对象。
我已经尽力描述了,如果我说的不对请追问,我们很乐意提供进一步的解释。
最佳
您可以将以下关系添加到您的 User
模型中:
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
我需要你的帮助来在 Laravel 中构建查询 eloquent 或数据库查询也可以。
我的 table 名字是 Users
要查看DB结构,打开下面link:
https://jsfiddle.net/vardaam/mvqzpb2j/
每个用户行有 2 列 referral_code 和 referred_by_code 这意味着每个用户都可以 推荐某人并获得类似的奖金同样的用户也被某人推荐。
我想要return 用户详细信息中带有循环的页面上的信息,以及向他介绍此内容的用户的用户名。为了跟踪相同的内容,我在相同的 table 中创建了这两列,即:referral_code 和 referred_by_code.
我不知道如何在 1 个查询中编写此内容或如何组合 2 个查询并获得所需的结果。
我的控制器代码如下所示:
$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']));
returning $users 变量为我提供了用户数据循环,但我不知道如何将这些推荐人的用户名附加到该对象。
我已经尽力描述了,如果我说的不对请追问,我们很乐意提供进一步的解释。
最佳
您可以将以下关系添加到您的 User
模型中:
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