自己結合シナリオ。 Users
テーブルのエイリアスを作成してからUsers
に参加すると、それを行うことができます。
$users = User::join('countries', 'countries.id', '=', 'users.country_id')
->leftJoin('users as promoters', 'promoters.id', '=', 'users.promoter_id')->select([
'users.id',
'users.promoter_id',
'users.family_name',
'users.name',
'promoters.family_name as promoter_family_name',
'promoters.name as promoter_name',
...
もう一つの方法は、あなたのUser
モデルに関係
public function promoter()
{
return $this->belongsTo(User::class, 'promoter_id', 'id');
}
が今すぐあなたがそうで$user->promoter->name, $user->promoter->family_name
によりプロモーターの詳細にアクセスすることができ、コントローラ
$users = User::with('promoter')->join('countries', 'countries.id', '=', 'users.country_id')->select([
...
にクエリを書き換え定義します。
また、あなたは感謝を、あまりにもCountry
ために同じことを行う国の関係を定義する代わりにして、User
モデルに参加し、その後User::with('promoter', 'country')->...
ことができます。私の問題は、datatablesプラグインのクエリのためにこれが必要なのです。したがって、クエリ – derdida
でOKを実行する必要があります。とった。あなたはこれで試してみることができます= '$ユーザーのユーザーを::( '国'、 'countries.id'、 '='、 'users.country_id')に参加 \t \t \t \t - > leftJoin( 'ユーザー(プロモータ、 'promoters.id'、 '='、 'users.promoter_id') - > select(['users.id'、 'users.promoter_id'、 'users.family_name'、 'ユーザーを選択してください。名」、 'promoter_family_nameとしてpromoters.family_name'、 \t \t 'promoter_name'、 としてpromoters.name ... ' チェックし、更新の答え。働いている –
感謝。 – derdida