Laravelでクエリを作成するには、雄弁にもDBクエリにも助けが必要です。Laravelのデータベースクエリを雄弁またはDBで作成する
私のテーブル名は、以下のリンクを開いて、DBの構造を確認するには、ユーザー
次のとおりです。すべてのユーザーの行が2列referral_codeとreferred_by_codeを持って
https://jsfiddle.net/vardaam/mvqzpb2j/
をつまり、すべてのユーザーがを参照すると、と同様のボーナスを得るためには、同様のユーザーでもあるのを参照してください。私はユーザーにループしてページの情報を返したい
このに彼を呼ばれていたユーザーのユーザー名と一緒にを詳述します。同じものを追跡するために、同じテーブル、すなわちreferral_codeとreferenced_by_codeで2つの列を作成しました。
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']));
返す$ユーザー変数は私のユーザーデータのループを提供していますが、私は、そのオブジェクトにこれらの参照元のユーザー名を接続する方法がわかりません。
私は自分のレベルを説明するのに最善を尽くしました。私が言ったことを理解していないことを尋ねてください。あなたが使用することができ、あなたのコントローラで
public function referredBy()
{
return $this->belongsTo(User::class, 'referred_code', 'referral_code');
}
:
あなたが使用することができ、あなたのビューで$users = User::with('referredBy')->get();
return view('users.users', compact('users'));
以降あなたはUser
モデルに次の関係を追加することができます
ベスト
Marcin Nabialekありがとうございました。あなたのソリューションは魅力的なものばかりでなく、コード品質に非常に感銘を受けました。もう一度ありがとう。 –
@ChetanChitte Glad私は助けることができました:) –