Опитвам се да попълня падащо меню във формуляр от базата данни, Етикетите за избор идват добре, но не мога да върна правилни стойности (ID) срещу тези опции в падащото меню, Как да напиша код за „избори“ в следното?
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(),));
}
Изображение на формуляр, изборите се попълват от Db, но не връщат идентификатор при изпращане
Получавам следното изключение:
Възникна изключение при изпълнение на „INSERT INTO model (brand_id, name, image_url, comment) VALUES (?, ?, ?, ?)“ с параметри [null, "ABC", null, "XYZ"]: SQLSTATE[23000]: Нарушение на ограничението за интегритет: 1048 Колоната „brand_id“ не може да бъде нулева
Игнорирайте Image_url като null,