Посмотрите мой существующий код:
class CategoryController extends ApiController
{
public function getCategory(){
$categories = DB::table('products')
->select('category', 'category_name')
->distinct('category', 'category_name')
->get();
$newArr = [];
foreach ($categories as $value) {
$newArr[$value->category_name] = [];
$subcategories = DB::table('products')
->select('subcategory_name')
->where('subcategory', 'LIKE', '%'. $value->category.'%')
->distinct('subcategory')
->get()->pluck('subcategory_name');
array_push($newArr[$value->category_name], $subcategories);
}
return response()->json([
'data' => $newArr
]);
}
}
Ответ кажется:
"data": {
"Food": [
[
"Chicken",
"Egg",
"Pie"
]
],
"Drinks": [
[
"Beer",
"Juice",
"Water"
]
],
Но это не тот ответ, который я хочу. Мне нужно как:
data: {
{
category_name : "Food",
subcategories_name : ["Chicken", "Eggs", "Pie"]
}
{
category_name : "Drinks",
subcategories_name : ["Beer", "Juice", "Water"]
}
}
, если вы не понимаете какую-то часть кода, спросите меня. У меня есть поля в таблице продуктов, такие как категория, имя категории, подкатегория, имя подкатегории. Категория кода и подкатегория, к которой она принадлежит, являются одним и тем же кодом. Все, что мне нужно, это написать ответ, как я написал выше. моя логика заключалась в том, чтобы поместить все категории в категории и в подкатегории, я настроил все подкатегории и затем объединил их в один массив. Мне не важно, как это будет выглядеть, важен только результат. Спасибо.
пс. Я не знаю, насколько важна моя база данных для вас, но есть таблица продуктов и 4 поля = категория, подкатегория, имя_категории, имя_категории. Это все.