我的 Symfony 表单错误总是全局的。没有像预期的那样链接到特定字段

My Symfony form errors are always global. Not linked to the specific field like supposed to

我有一个 Symfony 表单,当字段为空白时我会收到错误消息。

我已经尝试将 error_bubbling 设置为 false,但它仍然不起作用(默认情况下应该是 false)

这是我的代码,我删除了所有不需要的东西:

控制器:

/**
     * @Route("/add", name="add")
     */
    public function add(Request $request)
    {
        $post = new Post();
        $form = $this->createForm(PostType::class, $post);

        $form->handleRequest($request);

        if ($form->isSubmitted() && $form->isValid()) { } else { }

        return $this->render('blog/add.html.twig', array('form' => $form->createView()));
    }

实体:

/**
 * @ORM\Entity(repositoryClass="App\Repository\PostRepository")
 * @ORM\HasLifecycleCallbacks()
 */
class Post
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255)
     * @Assert\NotBlank
     */
    private $Title;

    /**
     * @ORM\Column(type="text")
     * @Assert\NotBlank
     */
    private $Content;
    ...

表格类型:

namespace App\Form;

use App\Entity\Post;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;

class PostType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder->add('title')
            ->add('content');
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => Post::class
        ]);
    }
}

表格:

{% extends "base.html.twig" %}

{% block body %}
    <h2>
        Create a post
    </h2>

    {{ form_start(form) }}

        {{ form_widget(form) }}


        <input type="submit" class="btn" value="Create" />
    {{ form_end(form) }}
{% endblock %}

当我在 post 之后查看对象时,所有错误都链接到表单并且子项(表单字段)中没有错误。

有谁知道哪里出了问题?

在 buildForm() 中,您需要将字段大写。它们区分大小写,并且在您的数据库中是大写的。