2013-06-07 4 views
4

Моей коллекция сделана из этого типаЭтикетка не заменяется правильным значением в прототипе из области сбора расслоения сонаты админ

<?php 
namespace Gustaw\AdminBundle\Form; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 
use Symfony\Component\OptionsResolver\OptionsResolverInterface; 

class AttributeValueType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('value') 
     ->add('translations', 'a2lix_translations'); 
    } 

    public function setDefaultOptions(OptionsResolverInterface $resolver) 
    { 
     $resolver->setDefaults(array(
       'data_class' => 'Gustaw\AdminBundle\Entity\AttributeValue', 
       'label' => false, 
     )); 
    } 

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

И это моя форма

public function configureFormFields(FormMapper $formMapper) { 
    $formMapper->with('General') 
      ->add('name', null, array('required' => true)) 
      ->add('translations', 'a2lix_translations', array(
        'by_reference' => false, 
        'fields' => array(
         'name' => array() 
        ) 
       )) 
      ->add('custom', null, array(
        'required' => false, 
      )) 
      ->add('category', 'entity', array(
        'required' => true, 
        'class' => 'GustawAdminBundle:Category', 
        'query_builder' => function (EntityRepository $er) { 
         return $er->createQueryBuilder('c') 
           ->orderBy('c.root', 'ASC') 
           ->addOrderBy('c.lft', 'ASC'); 
        },)) 
      ->end() 
      ->with('Values') 
      //->add('values', 'sonata_type_collection') 
      ->add('notcustomvalues', 'collection', array(
        'type' => new AttributeValueType(), 
        'allow_add' => true, 
        'allow_delete' => true, 
        'by_reference' => false, 
        'label' => false, 
        'required' => false, 
      )) 
     ->end(); 
} 

Проблема при добавлении новых элементов коллекция. Каждый отдельный атрибут AttributeValueType получает метку «__name__label__ *», когда я не хочу иметь ярлык для этого поля, поскольку я устанавливаю его в false.

Я пробовал настройку «prototype_name», надеясь, что это что-то изменит, чтобы усугубить ситуацию.

Единственные идеи, которые пришли на мой взгляд, являются:

1-й - создать собственную тему без этикетки только для этой одной коллекции второй - редактировать base.js в SonataAdminBundle

2-й, очевидно, не очень хороший вариант поэтому я остался только с первым.

Вопрос: Есть ли другие варианты, которые у меня есть?

ответ

1

Попробуйте добавить: 'options' => array (label => 'Some Label');

Как это:

 ->add('notcustomvalues', 'collection', array(
       'type' => new AttributeValueType(), 
       'allow_add' => true, 
       'allow_delete' => true, 
       'by_reference' => false, 
       'label' => false, 
       'required' => false, 
       'options' => array(
        'label' => 'Some Label' 
       ), 

     )) 

 Смежные вопросы

  • Нет связанных вопросов^_^