Php 集合中的Symfony2没有元素

Php 集合中的Symfony2没有元素,php,symfony,Php,Symfony,我正在尝试实现表单集合。我有会员,每个会员可以有多个会员资格。createForm的给定成员对象具有一个数组,该数组具有从数据库正确获取的成员身份。成员表单get显示正确,但form.memberships似乎为空。它甚至没有呈现测试 控制器 成员类型 成员类型 模板 即使我不使用条令,我也必须使用arrayCollection而不是数组作为成员资格 public function memberAction($id) { $request = Request::createFromGlo

我正在尝试实现表单集合。我有会员,每个会员可以有多个会员资格。createForm的给定成员对象具有一个数组,该数组具有从数据库正确获取的成员身份。成员表单get显示正确,但form.memberships似乎为空。它甚至没有呈现测试

控制器

成员类型

成员类型

模板


即使我不使用条令,我也必须使用arrayCollection而不是数组作为成员资格

public function memberAction($id) {
    $request = Request::createFromGlobals();
    $user_provider = $this->get('webservice_user_provider');

    if ($id === "new") {
        $member = new WebserviceUser();
        $name = "Neues Mitlgied";
    } else if (intval($id) != 0) {
        $member = $user_provider->getUserById(intval($id));
        $member->getMemberships();
        $name = $member->getName() . " " . $member->getLastname();
    } else {
        throw new NotFoundHttpException('No Member found!');
    }

    $form = $this->createForm(new MemberType($this->get('webservice_config_provider')), $member);

    $form->handleRequest($request);

    if ($form->isValid()) {
        return $this->redirect($this->generateUrl('bow_exciting_fit_member', array('id' => $user_provider->persistMember($form->getViewData()))));
    }

    return $this->render('BOWExcitingFitBundle:Default:member.html.twig', array(                    
                "member" => $member,
                "form" => $form->createView()
    ));
}
class MemberType extends AbstractType {

function __construct(\BOW\ExcitingFitBundle\Webservice\WebserviceConfigProvider $config) {
    $this->config = $config;
}

public function buildForm(FormBuilderInterface $builder, array $options) {     

   ... MORE CODE ...

    $builder->add('memberships', 'collection', array(
        'type' => new MembershipType($this->config),
        'by_reference' => false,
        'allow_add' => true));

    ... MORE CODE ...
}

public function setDefaultOptions(OptionsResolverInterface $resolver) {
    $resolver->setDefaults(array(
        'data_class' => 'BOW\ExcitingFitBundle\Webservice\WebserviceUser',
    ));
}

public function getName() {
    return 'member';
}

}
class MembershipType extends AbstractType {

function __construct(\BOW\ExcitingFitBundle\Webservice\WebserviceConfigProvider $config) {
    $this->config = $config;
}

public function buildForm(FormBuilderInterface $builder, array $options) {

    ... MORE CODE ...

    $builder->add('id', 'hidden');
    $builder->add('user', 'hidden');

    ... MORE CODE ...

}

public function setDefaultOptions(OptionsResolverInterface $resolver) {
    $resolver->setDefaults(array(
        'data_class' => 'BOW\ExcitingFitBundle\Webservice\WebserviceMembership',
    ));
}

public function getName() {
    return 'membership';
}

}
{{ form_start(form, {'attr': {'novalidate': 'novalidate'}}) }}
  <div class="ui divided list memberships" data-prototype="{{ include('BOWExcitingFitBundle:Form:membership-prototype.html.twig', { 'form': form.memberships.vars.prototype })|e }}">      
    {% for membership in form.memberships %}
      Test
      {{ include('BOWExcitingFitBundle:Form:membership-prototype.html.twig', { 'form': membership }) }}
    {% endfor %}  
  </div>               
{{ form_end(form) }}