私はこの簡単な質問の答えを探していましたが、実際の解決策が見つかりません。フィールドは2つしかありません。主な目的は、それぞれのフィールドで検証エラーを表示することです。Symfony 3 - フォーム検証エラーフィールドが表示されない
私のエンティティクラス:
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity
* @ORM\Table(name="sample")
*/
class Sample
{
/**
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\Column(type="integer")
*/
private $id;
/**
* @Assert\NotBlank()
* @ORM\Column(type="string")
*/
private $first_name;
/**
* @ORM\Column(type="string")
*/
private $last_name;
/**
* @Assert\NotBlank()
* @return mixed
*/
public function getId()
{
return $this->id;
}
/**
* @return mixed
*/
public function getFirstName()
{
return $this->first_name;
}
/**
* @param mixed $first_name
*/
public function setFirstName($first_name)
{
$this->first_name = $first_name;
}
/**
* @return mixed
*/
public function getLastName()
{
return $this->last_name;
}
/**
* @param mixed $last_name
*/
public function setLastName($last_name)
{
$this->last_name = $last_name;
}
}
マイフォームクラス:
class Sampleform extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('firstName')
->add('lastName');
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(['data_class' => Sample::class]);
}
public function getBlockPrefix()
{
return 'app_bundle_sampleform';
}
}
私のコントローラ機能:
public function indexAction(Request $request)
{
$form = $this->createForm(Sampleform::class);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
return new Response("Same");
}
return $this->render('default/index.html.twig', ['form' => $form->createView()]);
}
私は、コードをしようとするので、小枝ビューでIを失っていますその下にはエラーが表示されますが、デバッグツールバーがエラーを検出したにもかかわらず、他の小枝ビューはエラーメッセージを表示しませんr。
マイ小枝見る(3ラインがレンダリング形成):
{% block body %}
{{ form_start(form) }}
{{ form_widget(form) }}
<button class="btn btn-info" >Save</button>
{{ form_end(form) }}
{% endblock %}
マイ小枝ビュー(個々のフィールド):
{% extends 'base.html.twig' %}
{% block stylesheets %}
<link rel="stylesheet" href="{{ asset('bootstrap/css/bootstrap.css') }}">
{% endblock %}
{% block body %}
{{ form_start(form) }}
{{ form_label(form.lastName) }}
{{ form_errors(form.lastName) }}
{{ form_widget(form.lastName) }}
{{ form_label(form.lastName) }}
{{ form_errors(form.lastName) }}
{{ form_widget(form.lastName) }}
<button class="btn btn-info" >Save</button>
{{ form_end(form) }}
{% endblock %}
ブートストラップバージョンが4つのBETA 2つの 小枝フォームのテーマがすでに設定されている
2番目のテンプレートでは、form.lastNameのテンプレートタグが2回あり、form.firstNameのエラーは出力されません。そのため、form.firstNameも決して送信されません。 – martinczerwi
私はまだ同じだと思います。最初のフィールドのlastNameをfirstNameに置き換えるのを忘れてしまった。とにかく私が家に帰ったときにあなたが提案したものを試してみるでしょう。 –
ちょうど@martinczerwiの更新、私はそれを試みたが、それは動作していません。 –