您好,我需要一个带有实体类的思维帮助解决表单。 我有编辑功能
/**
* @Route("/{id}/edit", name="admin_product_group_edit", methods={"GET","POST"})
*/
public function edit(Request $request, ProductGroup $productGroup): Response
{
$form = $this->createForm(ProductGroupType::class, $productGroup);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$this->getDoctrine()->getManager()->flush();
return $this->redirectToRoute('admin_product_group_index', [
'id' => $productGroup->getId(),
]);
}
return $this->render('admin/product_group/edit.html.twig', [
'product_group' => $productGroup,
'form' => $form->createView(),
'scrollUp' => true,
]);
}
我的表格类型为
use App\Entity\ProductGroup;
use App\Entity\ProductType;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
class ProductGroupType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder
->add('nameDe')
->add('nameEn')
->add('descriptionDe')
->add('descriptionEn')
->add('rank')
->add('active')
->add('creatDate')
->add('updateDate')
->add('productTypes', EntityType::class, [
// looks for choices from this entity
'class' => ProductType::class,
// uses the User.username property as the visible option string
'choice_label' => 'nameDe',
// used to render a select box, check boxes or radios
// 'multiple' => true,
// 'expanded' => true,
]);
}
public function configureOptions(OptionsResolver $resolver) {
$resolver->setDefaults([
'data_class' => ProductGroup::class,
]);
}
}
通过创建一个新的ProductGroup一切都很好,但是通过对其进行编辑,我无法获得编辑表单。
我收到此错误
传递给App \ Controller \ Admin \ ProductGroupController :: edit()的参数1必须是App \ Entity \ ProductGroup的实例,给定的App \ Entity \ ProductType的实例,在/ var / www / symfony-michael-中调用第150行上的roskosch / htdocs / vendor / symfony / http-kernel / HttpKernel.php
这是带有symfony2的symfony 4.3,我对此没有任何问题,您能给我个提示吗?
答案 0 :(得分:0)
好,我找到了
我用orm注释链接了错误的repositoryClass
/**
- * @ORM\Entity(repositoryClass="App\Repository\ProductTypeRepository")
+ * @ORM\Entity(repositoryClass="App\Repository\ProductGroupRepository")
*/
class ProductGroup
{
采用实体名称ProductType并不是一个好主意,因为您的格式为ProductTypeType。在bin / console make:crud之后,代码中出现了一些错误。我不知道我昨晚是不是做过这些,还是它本身是由粗野的过程造成的。
现在没关系了:-)