我的Symfony表单错误总是全局的。没有链接到应该的特定字段

问题描述 投票:0回答:1

我有一个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;
    ...

FormType:

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 %}

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

有谁知道什么是错的?

symfony symfony-forms
1个回答
2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.