Здравствуйте, в моей модели есть поля с именем "rank" и типом "integer".
В моем formType это EntityType, потому что мне это нужно, так как выпадающий список позволяет выбрать, в каком порядке (ранге) должна быть новая запись.
теперь, конечно, проверка формы приводит к ошибке:
Ожидаемый аргумент типа «целое число», «App \ Entity \ ProductType», указанный в пути к свойству «rank».
как я могу продолжить эту ситуацию?
Это Symfony 4
В модели у меня есть поле
/**
* @ORM\Column(type="integer")
*/
private $rank;
В моем formType я добавляю эту сущность
->add('rank', EntityType::class, [
'class' => ProductType::class,
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('p')->orderBy('p.rank', 'ASC');
},
'choice_label' => function($productType) {
return 'nach ' . $productType->getNameDe();
},
'choice_value' => function ($productType) {
return $productType ? $productType->getRank() : '';
},
'placeholder' => 'am Anfang',
])
В контроллере
$productType = new ProductType();
$form = $this->createForm(ProductTypeType::class, $productType);
if ($request->isMethod('POST')) {
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) { /*here it breakes of course*/
$entityManager = $this->getDoctrine()->getManager();
/*Here I will set the new order (rank) to all my entries later then
but the Form validation gives me the error*/
$entityManager->persist($productType);
$entityManager->flush();
return $this->redirectToRoute('admin_product_type_index');
}
}