2015-09-26 3 views
0

Я хочу установить динамическую переменную и получить значение этой переменной. Я передал «orderDetails» в шаблон моей ветки.Я хочу разделить динамическую переменную в TWIG и значение выборки

$customerProfile = array(
     'ns1' => $customerProfile->getNs1(), 
     'ns2' => $customerProfile->getNs2(), 
     'custId' => $customerProfile->getCustId() 
) 

return $this->render('PortalBundle::popup.html.twig', array(
      'orderDetails' => $customerProfile 
     )); 

получить эту переменную, как {{orderDetails.ns1}}, {{}} orderDetails.ns2 как это, но у меня есть 15 до 16 переменной, как это и я хочу, чтобы принести эту переменную в цикле.

У меня есть код для этого, как

{% for i in 1..13 %} 
    {% set nsOrd = 'orderDetails.ns'~i %} 
      {% if nsOrd %} 
       {{nsOrd}} 
      {% endif %} 
{% endfor %} 

я хочу получать переменную {{orderDetails.ns1}} и другие. Дайте мне ваше предложение.

+0

Если 'orderDetails' является массивом, просто используйте' for ... in', не нужно генерировать индексы. Например. '{% для nsOrd в порядкеDetails%}'. – Yoshi

+0

'$ customerProfile = массив ( 'ns1' => $ customerProfile-> getNs1(), 'ns2' => $ customerProfile-> getNs2(), ) возвращение $ this-> Render ('PortalBundle :: popup.html.twig ', array ( ' orderDetails '=> $ customerProfile )); ' –

+0

Как я выбираю только ns1 и ns2? –

ответ

0

спасибо Yoshi, я перепутал переменную в массиве. спасибо за поддержку, я нашел и успешно получил выход, используя это.

{% for i in 1..13 %} 
    {% if orderDetails['ns' ~ i] is defined %} 
      {{orderDetails['ns' ~ i]}} 
    {% endif %} 
{% endfor %} 
Смежные вопросы