jessepinkman010101
@jessepinkman010101
Варю синий код

Как правильно выводить разные шаблоны на странице?

Есть таблица с товарами, которая имеет следующую структуру:

|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 и писать для каждого свой шаблон думаю не лучший вариант. Каким образом это можно автоматизировать

Пожалуйста, помогите мне решить эту проблему, буду благодарен. Любая информация по теме будет полезна.
  • Вопрос задан
  • 124 просмотра
Пригласить эксперта
Ответы на вопрос 1
BoriHagen
@BoriHagen
Как вариант написать единый шаблон для вывода, с разными условиями, в которых проверяется что за категория и в зависимости от этого что то выводится - а что то игнорируется. Главное без дублирования кода.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы