Форма не отображает ошибки в Symfony 2.8

Форма проверяется, и ошибки также отображаются в form_errors(form), но когда я пробую form_errors(form.Title), форма проверяется перенаправлением на ту же страницу, но не отображает никаких ошибок.

Контроллер

class CRUDController extends Controller
{
    /**
     * @Route("/add", name = "insert_article_route")
     */
    public function insertArticleAction(Request $request)
    {
        $article = new Article();

        // bootstrap class
        $class = ["class"=>"form-control"];

        $form = $this->createForm(ArticleType::class,$article);

        $form->handleRequest($request);

        if ($request->isMethod('POST'))
        {       
            if ($form->isSubmitted() && $form->isValid())
            {   
                // get form data
                $article = $form->getData();                        

                // get image file
                $file = $article->getImage();

                // get original image name
                $filename = $file->getClientOriginalName();

                // set image name in entity
                $article->setImage($filename);

                // Image upload
                $dir = $this->getParameter('images');            
                $file->move($dir, $filename);                            

                $em = $this->getDoctrine()->getManager();            
                $em->persist($article);
                $em->flush();
                return $this->redirectToRoute('table_route');
            }           
        }
        return $this->render('BlogBundle:Blog:form.html.twig',['form'=>$form->createView()]);                             
    }

Форма веточки

{% extends 'BlogBundle::base.html.twig' %}

{% block nav_item %}
<li class = "nav-item active">    
        <a class = "btn btn-secondary" href = "{{ url('table_route') }}">View</a>    
</li>
{% endblock %}
{% block body %}
<div class = "container">
    <div class = "row mt-5 justify-content-center">
        <div class = "col-6">
    {{ form_start(form, { method:'post',attr:{novalidate:'novalidate'}}) }}
    <div class = "form-group"> 
        {{ form_errors(form) }}
        {{ form_label(form.Title) }}
        <div class = "text-danger">
            {{ form_errors(form.Title) }}
        </div>
        {{ form_widget(form.Id) }}
        {{ form_widget(form.Title) }}
    </div>
    <div class = "form-group">
            {{ form_label(form.Description) }}
            {{ form_errors(form.Description) }}
            {{ form_widget(form.Description) }}
        </div>
    <div class = "form-group">
        {{ form_label(form.Content) }}
        {{ form_errors(form.Content) }}
        {{ form_widget(form.Content) }}
    </div>
     <div class = "form-group">
            {{ form_label(form.Category) }}
            {{ form_errors(form.Category) }}
            {{ form_widget(form.Category) }}
        </div>
    <div class = "form-group">
            {{ form_label(form.CreatedAt) }}
            {{ form_errors(form.CreatedAt) }}
            {{ form_widget(form.CreatedAt) }}
    </div>
    <div class = "form-group">            
            {{ form_widget(form.Image) }}
            {{ form_errors(form.CreatedAt) }}
    </div>
    <div class = "form-group">

        {{ form_widget(form.Submit) }}
    </div>
</div>    
</div>        
</div>
{{ form_rest(form) }}
{{ form_end(form, {'render_rest':false}) }}
{% endblock %}

Статья Entity

<?php

namespace BlogBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;

/**
 * Article
 * 
 * @ORM\Table(name = "article") 
 * @ORM\Entity(repositoryClass = "BlogBundle\Repository\ArticleRepository")
 */
class Article
{

    /**
     * @var int
     *
     * @ORM\Column(name = "id", type = "integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy = "AUTO")
     */
    private $id;

    /**
     * @var string
     *
     * @ORM\Column(name = "title", type = "string", length=255)
     * @Assert\NotBlank()
     * @Assert\Length(min = "5")
     */
    private $title;

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

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

   ...
   .....

Скриншот

Ошибки формы в form_errors (форма)

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Просто удали эту строку

  {{ form_errors(form) }}

потому что эта строка перезаписывает отображение сообщения об ошибке отдельного поля.

имя поля формы ветки должно соответствовать имени свойства сущности, в этом случае нижний корпус верблюда

{{ form_errors(form.xxx) }}

Не уверен, почему сейчас он будет пустым, но @habibun прав - как только вы отобразите сообщение об ошибке, вы не сможете сделать это снова. Можете ли вы попробовать записать dump в $form->getErrors(TRUE, TRUE) непосредственно перед звонком в render?

Jovan Perovic 23.07.2018 10:35

Вы случайно не используете какую-нибудь настраиваемую тему глобальной формы, которая отменяет функцию form_errorsTwig?

Jovan Perovic 23.07.2018 10:43

Я вижу, что имя вашего свойства написано в нижнем регистре, но в вашей ветке все написаны заглавными буквами. попробуйте изменить его на нижний регистр

habibun 23.07.2018 10:44

@habibun Спасибо, чувак! Я изменил form.Title на form.title, и это сработало: D

Istiyak Tailor 23.07.2018 12:04

Другие вопросы по теме