【发布时间】:2017-04-08 12:53:52
【问题描述】:
我不明白为什么这个子表单的渲染没有在我的TextType firstName 上渲染required 标签;
我的表单基于 Order 实体OrderFormType 的 CollectionType 为 Tent,基于 TentFormTypeTentFormType 的 CollectionType 为 Camper,基于 @987654329 @
所以订购 > 帐篷 > 露营者
namespace AppBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
//...
class CamperFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('firstName', TextType::class, [
'required' => true, //Should even not been usefull since SF2.8
'label' => 'First name',
'attr' => [
'placeholder' => 'First name'
],
]);
//...
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => 'AppBundle\Entity\Camper',
'csrf_protection' => true,
'error_bubbling' => true,
'csrf_field_name' => '_token',
//...
]);
}
}
这些字段只是使用 form_widget 呈现:
{{ form_widget(form.firstName) }}
{{ form_widget(form.lastName) }}
但那不添加required字段:
<input id="app_order_form_type_tents_0_campers_0_firstName" name="app_order_form_type[tents][0][campers][0][firstName]" placeholder="First name" class="form-control" type="text">
<input id="app_order_form_type_tents_0_campers_0_lastName" name="app_order_form_type[tents][0][campers][0][lastName]" placeholder="Last name" class="form-control" type="text">
我可以的
{{ form_widget(form.firstName, {'attr': {'required': 'required'}}) }}
{{ form_widget(form.lastName, {'attr': {'required': 'required'}}) }}
但我的 FormType 不需要它...
有人知道为什么吗?
--编辑--
我的Camper 实体
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Camper.
*
* @ORM\Table(name="camper")
* @ORM\Entity()
*/
class Camper
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
* @Assert\NotBlank()
*
* @ORM\Column(name="firstName", type="string", length=255, nullable=false)
*/
private $firstName;
// ...
}
【问题讨论】:
-
你可以在这里粘贴你的实体吗?
-
刚刚做到了:)!
标签: symfony