symfony-forms - 如何在 Symfony 3 中使用自定义 FormType

标签 symfony-forms symfony

我正在接受培训,但我在 symfony 3 下

我遇到了这个错误

Expected argument of type "string", "Test\FrontBundle\Form\Type\SheetType" given

SheetType.php 上的代码是

<?php

namespace Test\FrontBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\DateType;
use Symfony\Component\Form\FormBuilderInterface;


class SheetType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('name',null,array('label'=>'Titre de l\'album'))
            ->add('type')
            ->add('artist')
            ->add('duration')
            ->add('released', DateType::class)
            ;
    }
}

在我的 SheetController.php 上,我从我的 Controller 中获取 我一直不知道如何解决这个问题,否则我会出错

 public function createAction(Request $request)
    {
        $form = $this->createForm(new SheetType());

        $form->handleRequest($request);

        if($request->isMethod('post') && $form->isValid()){
            $em = $this->getDoctrine()->getManager();
            $em->persist($form->getData());
            $em->flush();
           return $this->redirect($this->generateUrl('test_front_sheet_list'));
        } 
        return $this->render('TestFrontBundle:Sheet:create.html.twig', array('form' => $form->createView()));
    }

最佳答案

从 symfony 2.8 开始,您必须在创建表单或表单生成器时传递一个完整的限定类名实例作为参数,它不再采用 FormTypeInterface 的实例。

参见 https://github.com/symfony/symfony/blob/2.8/UPGRADE-2.8.md

所以你应该使用 $form = $this->createForm(SheetType::class); 代替。

关于symfony-forms - 如何在 Symfony 3 中使用自定义 FormType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35677896/

相关文章:

symfony - 如何使用 EntityType 表单类型避免复选框列表中出现空值?

php - CollectionType 中的 EntityType : Get current object inside query_builder

php - 如何在symfony中调用redirectToRoute方法接受 Controller

symfony - 用常量数组填充 ChoiceType

php - Symfony + Mercure 连接问题。使用 HTTPS 而不是 HTTP

symfony - Symfony 4.2 中没有根节点的树构建器

mysql - mysql的问题从 Doctrine 原始sql创建过程

forms - Symfony2实体字段类型可以替代“属性”或“__toString()”?

php - Symfony 2 未按预期呈现欢迎页面

php - 如果我没有/不能使用 DI 注入(inject)服务,如何直接从容器获取服务?