我正在学习使用Slim框架和Twig。我想知道是否有可能使用多功能模板。
考虑一下;我想创建一个表单来为客户添加工作,如果您通过' job / new' route它将输出一个客户的选择列表,以选择该作业所针对的客户端。
但是,如果您通过' job / new /:id'路由它将呈现相同的模板,但只有客户端,即#id;' value对应于。
{% 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以在第二条路线上选择客户端,或者创建一个不使用select的不同模板,只需将单个客户端发送给它
由于
答案 0 :(得分:1)
好的,我在这里发布了正确答案,而不仅仅是在评论中。
Client::find('all');
返回一个元素数组,但Client::find($id);
只给出一个元素。
如果要在迭代中使用相同的模板,则必须将结果放入如下数组中:$data['clients'] = array(Client::find($id));