2014-11-04 13 views
0

我正在從食譜的一些表單集合,但我有這個標籤出現,我試圖刪除這個沒有任何運氣。如何刪除表單文件中未顯示的表單標籤?

我沒有看到下面列出的代碼在我的表單中。

如何刪除此標籤?

藍色標籤 'Clientphones' 突出顯示的是什麼,我試圖消除:

enter image description here

這是在頁面信息標籤:

enter image description here

ClientPhone形式

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder->add('home', 'text'); 
    $builder->add('office', 'text'); 
    $builder->add('mobile', 'text'); 
} 

public function setDefaultOptions(OptionsResolverInterface $resolver) 
{ 
    $resolver->setDefaults(array(
     'data_class' => 'Acme\DemoBundle\Entity\ClientPhone', 
    )); 
} 

public function getName() 
{ 
    return 'ClientPhone'; 
} 

客戶形式

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('firstName', 'text', array(
      'label' => 'First Name' 
     )) 
     ->add('lastName', 'text', array(
      'label' => 'Last Name' 
     )) 
     ->add('email', 'text', array(
      'label' => 'E-mail Address' 
     )) 
     ->add('clientphones', 'collection', array(
      'type'   => new ClientPhoneType(), 
      'allow_add' => true, 
      'allow_delete' => true, 
      'by_reference' => false, 
     )); 
} 

嫩枝形式

<form class="form" name="client" method="post"> 

    {{ form_start(form) }} 
    {{ form_errors(form) }} 

    {{ form_row(form.firstName) }} 
    {{ form_row(form.lastName) }} 
    {{ form_row(form.email) }} 

    <h3>Client Phones</h3> 
    <ul style="list-style-type: none;" class="clientphones" data-prototype="{{ form_widget(form.clientphones.vars.prototype)|e }}"> 
     {% for phone in form.clientphones %} 
      <li>{{ form_row(phone.home) }}</li> 
      <li>{{ form_row(phone.office) }}</li> 
      <li>{{ form_row(phone.mobile) }}</li> 
     {% endfor %} 
    </ul> 
    {{ form_rest(form) }} 

    <input type="submit" value="Submit" /> 

    {{ form_end(form) }} 
</form> 

回答

1

應設置現場呈現在你{{ form_rest(form) }}因此它不嘗試呈現已經錯過了(有意或無意)的一切。

{% do form.clientphones.setRendered %} 
{{ form_rest(form) }} 
+0

完美,隱藏該標籤!不知道這件事。這是什麼做的,我在哪裏閱讀更多關於這個? – chance 2014-11-04 21:24:46

+0

每個表單字段都是具有'$ rendered'屬性的'FormView'(https://github.com/symfony/symfony/blob/master/src/Symfony/Component/Form/FormView.php)對象。我假設當你調用類似'{{form_row()}}'時,它會自動設置呈現爲true,這意味着它不會在{{form_rest()}}傳遞中被拾取。我只是從StackOverflow中找到了有關'{%do ... setRendered%}'的內容,而不是任何文檔,所以除此之外我無法真正幫助你。 – qooplmao 2014-11-04 21:53:18

+0

哎呀,謝謝你的解釋Qoop!對我來說也是一樣,做了一些搜索,並且只找到了StackOverflow關於'{%do ... setRendered%}'命令的引用。 – chance 2014-11-04 21:56:46

0

使用form_label,form_error,form_widget代替form_row

例如

<div> 
    {{ form_label(phone.home) }} // remove or update this if you want to drop or modify the label 
    {{ form_errors(phone.home) }} 
    {{ form_widget(phone.home) }} 
</div> 
相關問題