首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Twig数组创建Twig变量

从Twig数组创建Twig变量
EN

Stack Overflow用户
提问于 2017-04-26 07:08:48
回答 1查看 168关注 0票数 1

我使用的代码点火器与Twig -我试图创建一个动态的选择框,其中包括来自数据库的数据。

以下是我现在正在做的事情

代码语言:javascript
复制
      // animals is $data['animals']=$this->loadmodel->some_function()
      // animals passed from the controller ...


           <select  id="foo" class="form-control">
                <option selected="true" >Animals</option>
                   {%  for animal_key in animals %}
                      <option >
                     {{ animal_key ["animal_description"] }}
                     </option>
                   {% endfor %}
             </select>

所以这一切都很好。但如果我想让它充满活力呢?每个复选框都从控制器中的不同方法中获取数据--假设我有来自其他方法的数据--如下所示

代码语言:javascript
复制
       // orders is $data['orders']=$this->loadmodel->some_function()
       // orders passed from the controller ...

           <select  id="foo" class="form-control">
                <option selected="true" >orders</option>
                   {%  for order_key in orders%}
                      <option >
                     {{ order_key ["order_description"] }}
                     </option>
                   {% endfor %}
             </select>

             <select  id="foo" class="form-control">
                <option selected="true" >Animals</option>
                   {%  for animal_key in animals %}
                      <option >
                     {{ animal_key ["animal_description"] }}
                     </option>
                   {% endfor %}
             </select>

我的想法是做这样的事:

设置控制器名称的数组:

代码语言:javascript
复制
         {% set controller_names = ['animals','orders']%}

设置控制器变量的数组及其键:

代码语言:javascript
复制
         {% set controller_vars = 
           ['animals'=>'animal_description','orders'=>'order_description']%}

然后像这样反复迭代

代码语言:javascript
复制
         {%  for names in controller_names  %}
              <select  id="foo" class="form-control">
                <option selected="true" >{{ name }}</option>
                   {%  for controller_key in controller_vars %}
                      <option >
                     {{ controller_vars [ controller_key] }} //suppose to be Twig variables
                     </option>
                   {% endfor %}
             </select>
         {% endfor %} 

因此,我需要的是将集合controller_vars数组转换为Twig变量(尽可能多).

EN

回答 1

Stack Overflow用户

发布于 2017-04-26 07:46:22

您可以使用属性函数:

代码语言:javascript
复制
               {%  for controller_key in controller_vars %}
                  <option >
                    {{ attribute(controller_key, controller_vars) }}
                 </option>
               {% endfor %}

希望能帮上忙

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43627267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档