Yii2 + Twig: как не верстать в контроллере?

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
rudnik_
Сообщения: 17
Зарегистрирован: 2017.07.26, 15:16

Yii2 + Twig: как не верстать в контроллере?

Сообщение rudnik_ » 2018.01.22, 10:06

Плохо делать так:

Код: Выделить всё

class SiteController extends Controller
{
    public function actionIndex()
    {
        $rowOptionsFunction = function ($model) {
            return ['class' => $model->status === 1 ? 'green' : 'red'];
        };

        return $this->render('index.twig', [
            'dataProvider' => $dataProvider,
            'rowOptionsFunction' => $rowOptionsFunction
        ]);    
    }
}


{{ grid_view_widget({
    'dataProvider': dataProvider,
    'rowOptions': rowOptions
}) }}
Таких примеров куча, когда нужно изменить верстку в зависимости от значения модели в строке. И получается верстальщик без программиста ничего не сможет сделать.
Есть ли более человеческие способы в связке Yii+Twig, чтобы контроллер оставался контроллером, а вьюха - вьюхой?

Nex-Otaku
Сообщения: 798
Зарегистрирован: 2016.07.09, 21:07

Re: Yii2 + Twig: как не верстать в контроллере?

Сообщение Nex-Otaku » 2018.01.22, 10:41

Передай модель и сделай выбор во вьюхе виджета.


urichalex
Сообщения: 620
Зарегистрирован: 2015.08.07, 11:03

Re: Yii2 + Twig: как не верстать в контроллере?

Сообщение urichalex » 2018.01.22, 11:18

Не использовать GridView

rudnik_
Сообщения: 17
Зарегистрирован: 2017.07.26, 15:16

Re: Yii2 + Twig: как не верстать в контроллере?

Сообщение rudnik_ » 2018.01.22, 11:25

Nex-Otaku писал(а):
2018.01.22, 10:41
Передай модель и сделай выбор во вьюхе виджета.
ElisDN писал(а):
2018.01.22, 11:04
https://twig.symfony.com/doc/2.x/tags/if.html
видимо, я что-то не понимаю в gridview. подскажите, пожалуйста. как задать виджету вьюху строки (где уже можно работать с моделью и if-ами)? он же сам рисует теги через renderTableRow...

rudnik_
Сообщения: 17
Зарегистрирован: 2017.07.26, 15:16

Re: Yii2 + Twig: как не верстать в контроллере?

Сообщение rudnik_ » 2018.01.22, 11:26

urichalex писал(а):
2018.01.22, 11:18
Не использовать GridView
пока склоняюсь к этому варианту

urichalex
Сообщения: 620
Зарегистрирован: 2015.08.07, 11:03

Re: Yii2 + Twig: как не верстать в контроллере?

Сообщение urichalex » 2018.01.22, 12:07

rudnik_ писал(а):
2018.01.22, 11:26
urichalex писал(а):
2018.01.22, 11:18
Не использовать GridView
пока склоняюсь к этому варианту
Это лучший вариант

Ответить