Laravel 联接查询仅显示第一项
我试图显示下面查询的结果,但只得到一项 该查询假定显示2个项目 这是我的数据库 表:compet_equipe(compet_id,equipe_id) 比赛有很多装备,装备有很多比赛 有人知道我哪里做错了吗 这里是我在控制器中的查询:Laravel 联接查询仅显示第一项,laravel,Laravel,我试图显示下面查询的结果,但只得到一项 该查询假定显示2个项目 这是我的数据库 表:compet_equipe(compet_id,equipe_id) 比赛有很多装备,装备有很多比赛 有人知道我哪里做错了吗 这里是我在控制器中的查询: $domicile = CompetEquipe::join('equipe' , 'equipe_id' , '=' , 'compet_equipe.equipe_id') ->join('structures' , 'structure_id
$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以获得equipe ect的名称时。。查询不起作用您是否尝试过建立关系并快速加载?我为任何错误的型号名称道歉,我不擅长翻译
class Competition extends Model {
public function equipes()
{
return $this->belongsToMany('App\Equipe', 'compet_equipe');
}
}
然后查询如下:
$competition = Competition::with('equipes')->find($id);
$equipes = $competition->equipes;
将您要加入的列添加到“选择”中,以便正确进行连接。您当前的查询结果是什么?感谢您的回答。实际上,我从compet:2/equipe_4获得了该项目,但不包括compet_id:2/equipe_id:1可能我需要获取equipe_id?您没有加入竞争表。我得到的结果是:我要!但是,我想采集或绘制结果!我怎么能做到呢?
$competition->equipes->pull('name')->all()
能得到你想要的吗?我找到了!有你的帮助$查找装备=$competition->equipes$住所=$find_equipes->mapWithKeys(函数($i){return[$i->id=>$i->lb_equipe.-'.$i->structure->nom_structure.-'.$i->catg_equipe->lb_catg_equipe];});很高兴我能帮忙!
$competition = Competition::with('equipes')->find($id);
$equipes = $competition->equipes;