سلام دوستان
می خوام یه dropdown مربوط به دسته بندی اضافه کنم هر کاری می کنم خطا می ده:
وقتی مستقیم می برم توی view موقع submit خطا می ده که :
اینم کد این قسمت:
action:
view:
به جای این اومدم از یه روش دیگه استفاده کنم، اومدم buildForm رو تغییر دادم ، وقی بعد از submit می بینم که مقدار category_id رو object می فرسته و خطا دیتابیس می ده:
می خوام یه dropdown مربوط به دسته بندی اضافه کنم هر کاری می کنم خطا می ده:
وقتی مستقیم می برم توی view موقع submit خطا می ده که :
نقل قول:This form should not contain extra fields.
اینم کد این قسمت:
action:
/** * Creates a new News entity. * * @Route("/new", name="news_new") * @Method({"GET", "POST"}) */ public function newAction(Request $request) { $news = new News(); $form = $this->createForm('AppBundleFormNewsType', $news); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $em = $this->getDoctrine()->getManager(); $em->persist($news); $em->flush(); return $this->redirectToRoute('news_show', array('id' => $news->getId())); } $em = $this->getDoctrine()->getManager(); $categories = $em->getRepository('AppBundle:Category')->findAll(); return $this->render('news/new.html.twig', array( 'news' => $news, 'form' => $form->createView(), 'categories' => $categories, )); }
view:
{% extends 'base.html.twig' %} {% block body %} <h1>News creation</h1> {{ form_start(form) }} <label for="news_content" class="required">Category</label> <select name="news[categoryId]"> {% for category in categories %} <option value="{{ category.id }}">{{ category.title }}</option> {% endfor %} </select> {{ form_widget(form) }} <input class="btn btn-sm btn-success" type="submit" value="Create" /> {{ form_end(form) }} <ul> <li> <a class="label label-sm label-info" href="{{ path('news_index') }}">Back to the list</a> </li> </ul> {% endblock %}
به جای این اومدم از یه روش دیگه استفاده کنم، اومدم buildForm رو تغییر دادم ، وقی بعد از submit می بینم که مقدار category_id رو object می فرسته و خطا دیتابیس می ده:
/** * @param FormBuilderInterface $builder * @param array $options */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('categoryId', EntityType::class, [ 'class' => 'AppBundle:Category', 'choice_label' => function ($category) { return $category->getTitle(); } ]) ->add('title') ->add('content') ; }
no pain, no gain