【问题标题】:Is it possible to multipurpose a Twig template?是否可以多用途 Twig 模板?
【发布时间】:2014-08-20 19:36:05
【问题描述】:

我正在学习使用 Slim 框架和 Twig。我想知道是否有可能使模板具有多种用途。

考虑一下;我想制作一个表格来为客户添加工作,如果您通过“工作/新”路线访问,它将输出一个客户选择列表,以选择该工作的目标客户。

但是,如果您通过 'job/new/:id' 路由访问,它将呈现相同的模板,但只有 'id' 值对应的客户端。

        {% for client in clients %}
        <option value="{{ client.id }}">{{ client.name }}</option>
        {% endfor %}

当我使用时,以上将起作用:

     $data['clients'] = Client::find('all');
     $app->render('job/new.html',$data);

但是,在我的另一条路线上:

     $data['clients'] = Client::find($id);
     $app->render('job/new.html',$data);

由于只有 1 条记录,它似乎没有输出。我只是想节省拉动所有客户端并多用途的相同模板。

如果这不可能,我知道我可以拉出所有客户端并发送 ID 以在第二条路由上选择客户端,或者,创建一个不使用选择的不同模板,只将单个客户端发送给它.

谢谢

【问题讨论】:

  • ::find('all')::find($id) 的结果是什么?第一个是数组没问题,但第二个不只是“单个元素”?
  • 啊,今天早上傻了。 $data['clients'] = array(Client::find($id)) ;将允许我这样做。这肯定不漂亮。谢谢你叫醒我格里菲尔德。
  • 正是我想要的建议,没有问题。 :)
  • 你想回答吗,我会接受你的回答。你推我到它。 ;)
  • 好的,谢谢! (这也是我的想法。:))

标签: php templates twig slim phpactiverecord


【解决方案1】:

好的,我在这里发布正确答案,而不仅仅是在 cmets 中。

Client::find('all'); 返回一个元素数组,但 Client::find($id); 只返回一个元素。 如果您想在迭代中使用相同的模板,您必须将结果放入这样的数组中:$data['clients'] = array(Client::find($id));

【讨论】:

    猜你喜欢
    • 2014-10-21
    • 1970-01-01
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多