我想用一個簡單的表單定義來過濾一些數據,所以我創建了沒有附加類的表單(期望使用getData()函數),然後使用數組傳遞給表單的參數,但表單始終無效。導致表單試圖驗證不屬於表單上下文的參數。使用簡單的symfony形式的奇怪的行爲約束
我在字段「almacen」中收到此驗證錯誤: 此值不應爲空。
隨着原因:
的Symfony \元器件\驗證\ ConstraintViolation 對象(Symfony的\元器件\表格\表)。數據[ALMACEN] .responsable = NULL
我嘗試使用cascade_validation=false
但沒有工作。
在控制器動作我聲明:
public function indexAction(Request $request)
{
$informeStock = $this->createForm(new BusquedaInformeStockType());
$informeStock->handleRequest($request);
if ($informeStock->isSubmitted() && $informeStock->isValid()) {
$data = $informStock->getData();
// the action logic...
}
...
}
我有一個簡單的形式定義,聲明的實體形式和類型沒有data_class asociated到窗體。
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;
...
}
在實體酒窖的早期版本中的參數「RESPONSABLE」留空白,所以在DB全髖關節置換某些行沒有「應答」分佈。 但儘管如此,這不應該發生的權利?我做錯了什麼?
該字段'$ resposable'是Bodega實體的一部分,但我沒有定義這個實體,我只使用Bodega來填充過濾器表單上的「select」。 – Dundivet