Я пытаюсь заполнить раскрывающееся меню в форме из базы данных. Метки выбора идут нормально, но я не могу вернуть правильные значения (идентификаторы) для этих параметров в раскрывающемся списке. Как написать код для «выборов» в следующем?
public function newModelAction(Request $request)
{
$product = $this->getDoctrine()
->getRepository('coreBundle:brand')
->findAll();
if (!$product) {
throw $this->createNotFoundException(
'No product found for id '.$productId
);
}
$model = new model();
$form = $this->createFormBuilder($model)
->add('brand_id',ChoiceType::class,array(
'label'=>'Brand Name',
'choices'=>array($product),
'choice_label' => function($product, $key, $index) {
return strtoupper($product->getName());
},
))
->add('name',TextType::class,array('label'=>'Model Name'))
->add('comment',TextType::class,array('label'=>'Comments'))
->add('save',SubmitType::class, array('label'=>'Add Model'))
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($model);
$em->flush();
return $this->render('coreBundle:layouts:newItem.html.twig',
array('form'=>$form->createView(),));
}
// ... do something, like pass the $product object into a template
return $this->render('coreBundle:layouts:newModel.html.twig',
array('form'=>$form->createView(),));
}
Изображение формы, выбор заполняется из базы данных, но не возвращает идентификатор при отправке
Я получаю следующее исключение:
Исключение произошло при выполнении «ВСТАВИТЬ В модель (brand_id, name, image_url, comment) VALUES (?, ?, ?, ?)» с параметрами [null, «ABC», null, «XYZ»]: SQLSTATE[23000]: Нарушение ограничения целостности: 1048 Столбец "brand_id" не может быть нулевым
Не обращайте внимания на то, что Image_url равен нулю,