Symfony2にTypeクラスのフィールド名をカスタマイズする方法はありますか?
私はこのようなことを試みました:
<?php
// src/Fuz/TypesBundle/Form/Editor/GeneralType.php
namespace Fuz\TypesBundle\Form\Editor;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Fuz\TypesBundle\Entity\Editor\GeneralData;
class GeneralType extends AbstractType
{
/**
* Root node ID
*
* @access private
* @var rootId
*/
private $rootId;
/**
* Current node ID
*
* @access private
* @var rootId
*/
private $currentId;
/**
* Constructor
*
* @access public
* @param string $rootId
* @param string $currentId
*/
public function __construct($rootId, $currentId)
{
$this->rootId = $rootId;
$this->currentId = $currentId;
}
/**
* General form fields
*
* @access public
* @param FormBuilder $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('useField', 'text',
array (
'required' => false,
'label' => 'types.general.use_field',
'read_only' => ($this->rootId == $this->currentId),
'attr' => array(
'name' => "useField{$this->currentId}",
)
));
// ...
}
/**
* Form name
*
* @access public
* @return string
*/
public function getName()
{
return 'General';
}
}
しかし、私のフィールドにはまだGeneral[useField]
名前があります(Generalは私のフォーム名です)。
また、検証を機能させ続けたいと思います。