Query Builder внутри формы сущности Symfony2

Сейчас у меня проблема с функцией построителя запросов типа формы сущности внутри Symfony.

Другие вопросы на этой доске не помогли мне найти решение:
Смотрите, например: 8456298 или же 13846970 или же введите описание ссылки здесь

Вот ситуация: я хочу добавить адрес электронной почты, чтобы отправить оценку по запросу. Рейтинги — это дети класса «Доктор», который является потомком пользователя (здесь используется Пакет пользователя FOS)

Итак, вот мой код:

Контроллер:

public function AddPatientAction()
{
$user = $this->getUser();
$form = $this->createForm(new AddPremiumRatingType(), '', array('user'=> $user));
return $this->render('Acme/DemoBundle:Dashboard/Premium:addpatient.html.twig', array(
'form' => $form
));
}

Вот класс AddPremiumRatingType:

class AddPremiumRatingType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{

$builder
->add('doctor', 'entity', array(
'label' => 'Arztprofil',
'required' => true,
'class' => 'JBauleRatingBundle:Doctor',
'mapped' => false,
'property' => 'name',
'query_builder' => function(DoctorRepository $er) use ($options) {
$user = $options['user'];
return $er->createQueryBuilder('d')
->select('d')
->where('d.user = ?1')
->setParameter('1', $user->getId());
}))
->add('emails', 'collection', array(
'label' => 'E-Mail Adressen',
'type'   => 'email',
'mapped' => false,
'delete_empty' => true,
'allow_add' => true,
'allow_delete' => true,
'prototype' => true,
'prototype_name' => '__name__',
'options' => array(
'label' => 'E-Mail Adresse',
'attr' => array('class' => 'form-control'),
'required' => false
)
))
->add('save', 'submit', array(
'label'     => 'Patienten hinzufügen'
));
}

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

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Acme\DemoBundle\Entity\PremiumRating',
));
$resolver->setRequired(array(
'user',
));
$resolver->setAllowedTypes(array(
'user' => 'Acme\LoginChildBundle\Entity\User',
));
}

}

И наконец вот ошибка, которую я получаю:

Expected argument of type "object, array or empty", "string" given

Также я попробовал:

  • Аутсорсинг QueryBuild в классе репозитория и вызов класса репозитория => получил ту же ошибку

  • Используйте только команду Создать запрос => Ошибка, что запрос должен быть экземпляром QueryBuilder

  • Читая Документы Доктрины и Symfony … не мог найти решение пока

1

Решение

На самом деле вы вообще не можете отобразить форму, так как вы получаете эту ошибку при создании.

$form = $this->createForm(new AddPremiumRatingType(), '', array('user'=> $user));

Второй аргумент, что createForm() получает помечен как mixed, И, как говорит ошибка, это должно быть либо object или же array() или просто null,

Измените свою линию на:

$form = $this->createForm(new AddPremiumRatingType(), array(), array('user'=> $user));
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]