У меня проблема в приложении Symfony2. В контроллере я получаю массив пользователей facebook и отправляю его в свой класс формы, где я создаю некоторые флажки. В моем шаблоне мне нужно распечатать эти флажки в качестве изображений этих пользователей. Я пытаюсь напечатать это следующим образом: {{form_row (form. {{Girl.id}}}}}, но шаблон TWIG не позволяет использовать переменную {{girl.id}} как имя строки, а также я Не знаете, как напечатать эти флажки в качестве изображений. Кто-нибудь может мне с этим помочь ?
Это действие ma Controller
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()); }
Это мой класс Form
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])}}