我有2张桌子 表1
________________
| name_id name |
| 1 john |
| 2 heaven |
|_______________|
表2
_______________________
| id name_id product |
| 1 1 bag |
| 2 1 shoes |
|_____________________|
我想像这样显示它
__________________________
| # | name | product |
| 1 | John | bag,shoes |
| 2 | Heaven | |
|___|_________|___________|
我不知道如何在控制器中执行此操作 Controller.php
$data = DB::table('table1')
->leftjoin('table2','table2.name_id','=','table1.name_id')
->select('table1.*','table2.*')
->get();
return $data
这就是我在表格中显示数据的方式
Myvue js
methods:{
loaddata(){
axios.get('api/data').then(({data}){
(this.alldata = data)
})
}
}
答案 0 :(得分:0)
您从::table
中删除了DB
DB::('table1')
=> DB::table('table1')
$data = DB::table('table1')
->leftJoin('table2', 'table1.name_id', '=', 'table2.name_id')
->select('table1.*', 'table2.*')
->get();
答案 1 :(得分:0)
您可以尝试使用GROUP_CONCAT
例如这样的
DB::table('table1')
->leftjoin('table2','table2.name_id','=','table1.name_id')
->select('table1.*', DB::raw('GROUP_CONCAT(table2.product SEPARATOR ', ') AS products'))
->groupBy('table1.name_id')
->get();