簡體   English   中英

表單未在Symfony 2.8中顯示錯誤

[英]Form is not displaying errors in 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 %}

實體文章

<?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(form)中的表單錯誤

只需刪除此行

  {{ form_errors(form) }}

因為此行覆蓋了各個字段錯誤消息的呈現。

根據實體屬性名稱,細枝表格字段名稱應為小駝峰形式

{{ form_errors(form.xxx) }}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM