2015-03-17 3 views
0

Я пытаюсь отобразить изображение учетной записи пользователя, если поле изображения не является «нулевым» на базе.Отображать изображение пользователя, если доступно

Если поле «null», я бы отображал изображение учетной записи по умолчанию.

Я попытался с {{ if MYFIELD is null }} и {{ if MYFIELD is define }}

Как это

<img src="{% if user.pictureName is null %}{{ asset('bundles/nastycodefront/img/userpic.png') }}{% else %}{{ asset('uploads/pictures/nastypic_' ~ post.member ~ '.jpg') }}{% endif %}" alt="Profile Picture"> 

или

<img src="{% if user.pictureName is define %}{{ asset('uploads/pictures/nastypic_' ~ post.member ~ '.jpg') }}{% else %}{{ asset('bundles/nastycodefront/img/userpic.png') }}{% endif %}" alt="Profile Picture"> 

Но все это продолжать пытаться получить собственное изображение.

У вас есть идея исправить это? Является ли мой код неправильным?

Спасибо за вашу помощь

+0

Сделать атрибут изображения с полным URL и использовать [фильтр по умолчанию] (http://twig.sensiolabs.org/doc/filters/default.html). – ceejayoz

+3

вы пропустили «d» в 'define'' {%, если user.pictureName определено%} ' –

ответ

2

Попробуйте

<img src="{% if app.user.pictureName is defined and app.user.pictureName|length > 0 %}{{ asset('uploads/pictures/nastypic_' ~ app.user.pictureName ~ '.jpg') }}{% else %}{{asset('bundles/nastycodefront/img/userpic.png') }}{% endif %}"/> 

Другой элегантный способ использует по умолчанию фильтр:

<img src="{{ app.user.pictureRoute|default('route to userpic.png') }}"/> 
Смежные вопросы