2017-04-08 8 views
0

このサブフォームのレンダリングで、のタグがレンダリングされない理由はわかりません。TextFieldでsymfonyレンダリングが必要です。

Orderエンティティ
OrderFormTypeをもとでの私のフォームはTentFormType
TentFormTypeに基づいて、Tentの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', 
      //... 
     ]); 
    } 
} 
に基づいて、 CamperのCollectionTypeはを持っています

フィールドは単純に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で要求されるべきではない...

は誰もいなぜ知っていますか?

--EDIT--

マイ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; 

    // ... 

} 
+0

ここにエンティティを貼り付けることはできますか? –

+0

ちょうどそれをした:)! – Bouffe

答えて

0

ごめんなさい、私はので、私はここでの提案を入れてコメントを使用することはできません... 試してみてください。

{{ form_start(form) }} 
{{ form_widget(form) }} 
{{ form_end(form) }} 
+0

私はすでに 'form_start'と' form_end'を持っています 'form_widget(form)'は私のすべてのフィールドを同じ場所にレンダリングします。 – Bouffe

+0

プレースホルダはattrにある必要がありますか? –

+0

はい、http://stackoverflow.com/questions/41200549/symfony3-the-option-placeholder-does-not-exist – Bouffe

関連する問題