Есть таблица с товарами, которая имеет следующую структуру:
|ID |NAME |COUNT |PROVIDER |DATEOFPURCHASE |CATEGORY
|1 |Банан |20 |Иван |2007-01-01 |Fruits
|2 |Помидор |500 | |2001-01-01 |Vegetables
|1 |Телефон |2 |Альбинос | |Phone
Делаю запрос в бд и вывожу товары с выбранной категорией
$category = $_POST['category'];
$stock_list = [];
$stock_view = $dbpdo->prepare("SELECT * FROM products
WHERE count > 0
AND category = ?
ORDER BY id DESC");
$stock_view->execute([$category]);
if($stock_view->rowCount()>0) {
while ($row = $stock_view->fetch(PDO::FETCH_BOTH)) {
//заполняю массив
$stock_list[] = [
'id' => $row['id'],
'name' => $row['name'],
'count' => $row['count'],
'provider' => $row['provider'],
'date' => $row['DATEOFPURCHASE']
];
}
//далее отправляю массив в шаблон
echo $tpl = $twig->render('page/tpl.twig', $stock_list);
}
Теперь с чем у меня возникает проблема. Для примера я тут привел всего несколько столбцов и категорий, но на деле их больше и в зависимости от категории товара, выводиться таблица, например для Vegetables столбец provider не нужно выводить, а для фруктов нужно и так же для телефонов не нужно DATEOFPURCHASE а для остальных нужно. Единственный вариант, который пришел мне в голову, это в твиге сделать шаблон для каждой категории и проверять категорию if-ми и выводить нужный блок. Но мне кажется, что этот вариант ужасный и явно есть решение по лучше. Можно было бы сделать ифами, если было всего 2-3 категории, то не критично сделать пару шаблонов и страниц, но пару месяцев назад было 5 категорий а сейчас 30, не уверен, что через год не будет 200 и писать для каждого свой шаблон думаю не лучший вариант. Каким образом это можно автоматизировать
Пожалуйста, помогите мне решить эту проблему, буду благодарен. Любая информация по теме будет полезна.