我尝试显示以下查询的结果,但我只得到一个项目。
该查询应该显示我2项
这是我的数据库
表:compet_equipe(compet_id,equipe_id)
compet_id : 2 / equipe_id = 4
compet_id : 2 / equipe_id = 1
比赛有很多设备和比赛有很多比赛
有人知道我哪里做错了吗?
这是我在控制器中的查询:
$domicile = CompetEquipe::join('equipe' , 'equipe_id' , '=' , 'compet_equipe.equipe_id')
->join('structures' , 'structure_id' , '=' , 'equipe.structure_id')
->join('catg_equipe' , 'catg_equipe_id' , '=' , 'equipe.catg_equipe_id')
->select('lb_equipe' , 'catg_equipe.lb_catg_equipe' , 'structures.nom_structure')
->where(['compet_id' => $competition->id])
->get()
->mapWithKeys(function($i) {
return [$i->id => $i->lb_equipe.' - '.$i->nom_structure.' - '.$i->lb_catg_equipe];
});
我做的时候更新:
$domicile = CompetEquipe::where(['compet_id' => $competition->id])
->get();
#original: array:2 [▼
"compet_id" => 1
"equipe_id" => 2
]
#original: array:2 [▼
"compet_id" => 1
"equipe_id" => 4
]
它正在运行,但是当我使用equipe加入以获取设备名称时...查询不起作用
答案 0 :(得分:0)
您是否尝试过建立关系并急切加载?我对任何不正确的型号名称表示歉意,我对翻译不满意。
class Competition extends Model {
public function equipes()
{
return $this->belongsToMany('App\Equipe', 'compet_equipe');
}
}
然后查询如下:
$competition = Competition::with('equipes')->find($id);
$equipes = $competition->equipes;