[英]Variable as name of row in TWIG : Symfony 2
我的Symfony2應用程序有問題。 在Controller中,我得到了一系列的Facebook用戶,並將其發布到我的表單類中,在其中創建了一些復選框。 在我的模板中,我需要將這些語言的復選框打印為這些用戶的圖片。 我嘗試像這樣打印它:{{form_row(form。{{girl.id}})}},但是TWIG模板不允許將變量{{girl.id}}用作行名,我也不想這樣做不知道如何將這些復選框打印為圖片。 誰能幫我這個 ?
這是控制器操作
public function indexAction()
{
$facebook = $this->get('facebook');
$friends = $facebook->api('me/friends?fields=id,name,gender');
$friends = $friends['data'];
foreach($friends as $friend){
if(array_key_exists('gender',$friend))
{
if($friend['gender'] =='female')
$girls[]=$friend;
}
}
for ($i=0; $i <5; $i++) {
$default[]=$girls[$i];
}
$formular = new FriendsForm();
$formular->addFriend($default);
$form = $this->createForm($formular);
return array('girls'=>$default,'form' => $form->createView());
}
這是我的形式課
class FriendsForm extends AbstractType
{
private $friends;
public function buildForm(FormBuilderInterface $builder, array $options)
{
$friends = $this->friends;
foreach($friends as $friend)
{
$builder
->add($friend['id'],'checkbox',array('label' => false,'required'=>false, 'value'=>$friend['']));
;
}
}
public function getName()
{
return '';
}
public function addFriend($data)
{
$this->friends = $data;
}
}
這是我的模板
<p>
{%if girls is defined%}
{{form_start(form)}}
{%for girl in girls%}
{{form.row(form.{{girl.id}})}}
{%endfor%}
{{form_end(form)}}
{%endif%}
</p>
您可以使用attribute
內置功能(從1.2開始)。
http://twig.sensiolabs.org/doc/functions/attribute.html說
屬性可用於訪問變量的“動態”屬性
在這種情況下,您可以這樣寫:
{{ form_row(attribute(form, girl.id)) }}
你可以寫成
{{form.row(form[girl.id])}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.