単純なフォーム定義を使ってデータをフィルタリングしようとしていますので、クラスを付けずに(getData()関数を使用する)フォームを作成し、フォームに渡されたパラメータは常に無効になります。フォームがフォームのコンテキストに属していないパラメータを検証しようとしています。シンプルなsymfonyフォームを使った奇妙な動作の制約
"almacen"フィールドでこの検証エラーが発生します。 この値は空白にしないでください。原因と
:
symfonyの\コンポーネント\バリ\ ConstraintViolation オブジェクト(symfonyの\コンポーネント\フォーム\フォーム)[almacen] .responsable =ヌル
を.DATA Iはcascade_validation=false
を使用してみましたしかし、うまくいきませんでした。コントローラのアクションで
Iが宣言:
public function indexAction(Request $request)
{
$informeStock = $this->createForm(new BusquedaInformeStockType());
$informeStock->handleRequest($request);
if ($informeStock->isSubmitted() && $informeStock->isValid()) {
$data = $informStock->getData();
// the action logic...
}
...
}
Iエンティティフォームタイプ宣言、フォームにasociatedないdata_classと、単純なフォーム定義を有します。
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('almacen', 'entity', array(
'class' => 'BusetaBodegaBundle:Bodega',
'placeholder' => '---Seleccione---',
'required' => false,
'label' => 'Bodega',
'attr' => array(
'class' => 'form-control',
),
))
...
...
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'csrf_protection' => false,
));
}
そして、これは実体ボデガの定義です:パラメータを空白に「責任が」残されたエンティティボデガの以前のバージョンでは
class Bodega
{
...
/**
* @var string
*
* @ORM\Column(name="codigo", type="string", nullable=true)
* @Assert\NotBlank()
*/
private $codigo;
/**
* @var string
*
* @ORM\Column(name="nombre", type="string")
* @Assert\NotBlank()
*/
private $nombre;
/**
* @ORM\ManyToOne(targetEntity="Buseta\BodegaBundle\Entity\Tercero", inversedBy="bodega")
* @Assert\NotBlank()
*/
private $responsable;
...
}
、そうデシベルthasで一部の行があります関連する「責任ある」ものがない。 しかしこれにもかかわらず、これは正しいことではありませんか?私は間違っているの?
このフィールド '$ resposable'はBodegaエンティティの一部ですが、私はこのエンティティを定義していないので、Bodegaを使用してフィルタフォームの「選択」を入力します。 – Dundivet