自加入場景。你可以通過創建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');
}
現在重寫控制器
$users = User::with('promoter')->join('countries', 'countries.id', '=', 'users.country_id')->select([
...
查詢現在,您可以通過$user->promoter->name, $user->promoter->family_name
等訪問細節子。
您也可以爲Country
做同樣也是如此,通過定義一個國家的關係,而不是在你的User
模型加入,然後User::with('promoter', 'country')->...
謝謝。我的問題是,生病需要這個查詢數據表插件。所以應該用查詢 – derdida
確定。得到它了。你可以給一個嘗試這樣的: '$用戶=用戶::加入( '國家', 'countries.id', '=', 'users.country_id') \t \t \t \t - > leftJoin(「用戶作爲發起人','promoters.id','=','users.promoter_id') - > select([ 'users.id', 'users.promoter_id', 'users.family_name', 'users。名稱」, 'promoters.family_name爲promoter_family_name', \t \t 'promoters.name爲promoter_name', ...' 檢查更新的答案。 –
感謝那些正在工作。 – derdida