2012-02-26 4 views
2

Я пытаюсь выполнить оператор if с данными, переданными в файл twig с контроллера. Ниже приведена строка от контроллера:Если инструкция при получении данных из php в twig

return $this->redirect($this->generateUrl('homepage', array('user' => $user, 'contact' => $contact))); 

Моя цель - выполнить оператор if с переменным «контакт». Я проверил twig reference, и он показывает, как выполнить оператор if, но это не будет работать с «контактом». Ниже приведен код, который я пробовал, может кто-нибудь сказать мне, что я делаю неправильно?

{% if {{ contact.id }} > 0 %} 
    {{ contact.addrLineOne }} 
{% else %} 
    -- 
{% endif %} 

ответ

3

Вы почти там, небольшая модификация синтаксиса заставит ваш код работать!

{% if contact.id > 0 %} 
    {{ contact.addrLineOne }} 
{% else %} 
    -- 
{% endif %} 

В Twig, фигурные скобки означает, что вы хотите напечатать значение переменной или выражения. Таким образом, вы заявляете, что в PHP будет выглядеть так:

if ((echo contact[id]) > 0) 
    echo contact[addrLineOne]; // or contact->addrLineOne() according to the context 
else 
    -- 
+0

Хм ... кажется, снова возникают проблемы. Я получаю следующую ошибку: – KVISH

+0

Переменная «контакт» не существует в AcmeHelloBundle: Здравствуйте: homepage.html.twig в строке 32 строка 32 есть {% if contact.id> 0%} У меня выше контакт передается в ... есть ли что-то еще, что мне не хватает? – KVISH

+0

Какую версию ветки вы используете? Не могли бы вы разместить здесь свой код шаблона. – Liyali