Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 联接查询仅显示第一项_Laravel - Fatal编程技术网

Laravel 联接查询仅显示第一项

Laravel 联接查询仅显示第一项,laravel,Laravel,我试图显示下面查询的结果,但只得到一项 该查询假定显示2个项目 这是我的数据库 表:compet_equipe(compet_id,equipe_id) 比赛有很多装备,装备有很多比赛 有人知道我哪里做错了吗 这里是我在控制器中的查询: $domicile = CompetEquipe::join('equipe' , 'equipe_id' , '=' , 'compet_equipe.equipe_id') ->join('structures' , 'structure_id

我试图显示下面查询的结果,但只得到一项

该查询假定显示2个项目

这是我的数据库

表:compet_equipe(compet_id,equipe_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;