我不明白为什么此子窗体的渲染不会渲染我的TextType firstName
上的required
标记;TextField需要Symfony渲染true
我的基础上Order
实体
OrderFormType
形式具有Tent
一个CollectionType,基于TentFormType
TentFormType
有Camper
一个CollectionType,基于CamperFormType
所以订单>帐篷>野营
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;
// ...
}
你能在这里粘贴你的实体吗? –
只是做了:)! – Bouffe