下面是显示表格的 Controller 函数
$rec = DB::table('recipe_list')
->select('recipe_list.recipe_id', 'recipe_list.Recipe_name',
'recipe_list.Recipe_desc', 'recipe_list.Recipe_duration',
DB::raw('group_concat(distinct ing_list.Ing_name separator ",") as recipe_ingredients'),
DB::raw('group_concat(distinct recipe_inglist.quantity separator ",") as ingredients_amount'),
'recipe_cusine.Cusine_name', 'recipe_type.Recipe_type_name', 'recipe_list.image',
DB::raw(' count(distinct likerecipes.id) as likes'))
->join('recipe_inglist', 'recipe_list.recipe_id', '=', 'recipe_inglist.Recipe_id')
->join('ing_list', 'recipe_inglist.Ing_id', '=', 'ing_list.ing_id')
->join('recipe_cusine', 'recipe_list.Recipe_cusine_id', '=', 'recipe_cusine.cusine_id')
->join('recipe_type', 'recipe_list.Recipe_type_id', '=', 'recipe_type.Recipe_typeID')
->join('likerecipes', 'recipe_list.recipe_id', '=', 'likerecipes.recipe_id')
->where('recipe_list.recipe_id', '>=', '1')
->groupBy('recipe_list.recipe_id', 'recipe_list.recipe_name', 'recipe_list.recipe_desc', 'recipe_list.recipe_duration', 'recipe_cusine.Cusine_name', 'recipe_type.Recipe_type_name', 'recipe_list.image')->get();
表格输出是 Recipes Table
但是我想要的输出是这样的:
|Recipe_id|Name|Description|Cusine|Type |Ingredient |
| 1 |blah|blahblahbla| bla | bla | 20 gm of garlic,
| 500 gm of chicken,
| 30 gm of onion,
这是我的 recipe_inglist 表 recipe_inglist
最佳答案
我建议你使用 php 代码,
像这样,
你有$rec
数据,然后执行下面的代码,
foreach ($rec as $k => &$v) {
$names = explode(",", $v->recipe_ingredients);
$amount = explode(",", $v->ingredients_amount);
$temp = [];
foreach ($names as $key => $value) {
$temp[] = $amount[$key] . ' of ' . $value;
}
if ($temp) {
$v->ingredient = implode(",", $temp);
}
}
我在哪里创建 ingradient
字段,例如20 克大蒜、500 克鸡肉、30 克洋葱
作为值(value)。
关于php - 如何在由客户分隔符分隔的单个列中一起显示两个组连接列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43586391/