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

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

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

Сообщение rudnik_ »

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

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

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
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

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

Сообщение Nex-Otaku »

Передай модель и сделай выбор во вьюхе виджета.
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

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

Сообщение urichalex »

Не использовать GridView
rudnik_
Сообщения: 24
Зарегистрирован: 2017.07.26, 15:16

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

Сообщение rudnik_ »

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_
Сообщения: 24
Зарегистрирован: 2017.07.26, 15:16

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

Сообщение rudnik_ »

urichalex писал(а): 2018.01.22, 11:18 Не использовать GridView
пока склоняюсь к этому варианту
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

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

Сообщение urichalex »

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