【发布时间】:2016-07-11 15:43:27
【问题描述】:
我用这个设置在 Symfony 中创建了一个表单:
#\src\AppBundle\Entity\Order.php
class Order
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var string $orderID
*
* @ORM\Column(type="string")
* @Assert\NotBlank()
*/
protected $orderID;
/**
* @var string $email
*
* @ORM\Column(type="string")
* @Assert\NotBlank()
* @Assert\Email()
*/
protected $email;
...
在我的表单类型中:
# \src\AppBundle\Form\OrderType.php
class OrderType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('order_id', TextType::class, [
'label' => 'index.order_id',
'attr' => array(
'placeholder' => 'index.order_id.placeholder'
)
])
->add('email', EmailType::class, [
'label' => 'index.email',
'attr' => array(
'placeholder' => 'index.email.placeholder'
)
]);
}
...
因此,如果我提交带有空字段的表单,Symfony 会检测到这两个错误,但订单 ID 错误被分配给类而不是实际字段。
有什么想法吗?
更新
我将protected $orderID;重命名为protected $orderid;,问题就解决了!那么为什么会这样呢?在属性名称中使用 ID 时是否有任何保留名称?
【问题讨论】:
标签: forms validation doctrine-orm symfony assert