В Twig проверить переменную

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
miken
Сообщения: 33
Зарегистрирован: 2015.05.20, 12:46

В Twig проверить переменную

Сообщение miken »

Добрый день.

Есть некая таблица с товаром в котором есть связанные поля с другой таблицей, например фото.
В шаблоне вывода twig мне нужно проверить что связь указана и если есть то только тогда подтягивать связанную модель.
Сейчас если в связанном поле стоит null то twig генерирует запрос типа SELECT * FROM photo WHERE id is null limit 1.

Вывод в шаблоне сделан так:

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

{% if item.photo %} 
	{{ item.photo }}
{% endif %}
Нужно избавится от бессмысленных запросов: SELECT * FROM photo WHERE id is null limit 1. То есть как то проверить значение photo не обращаясь к связанной таблице. Как так?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: В Twig проверить переменную

Сообщение ElisDN »

В контролере к $query добавьте жадную загрузку ->with('photo')

Тогда все фотографии подтянутся сразу, а не будут доставаться поштучно отдельными запросами.
miken
Сообщения: 33
Зарегистрирован: 2015.05.20, 12:46

Re: В Twig проверить переменную

Сообщение miken »

ElisDN писал(а): 2023.12.07, 17:00 В контролере к $query добавьте жадную загрузку ->with('photo')

Тогда все фотографии подтянутся сразу, а не будут доставаться поштучно отдельными запросами.
With - не подходит так как запрос списка товаров для скорости идет через PDO без active record.

Сделал пока в модели отдельный метод проверки :

if ($this->getAttribute('photo')==null) {
return null;
}
Ответить