매우 비슷한 두 가지가 있습니다. 및 MyBarFieldset
입니다. 코드 중복을 피하기 위해, 나는 AbstractMyFieldset
을 만들어 거기에 전체 코드를 이동하고, 구체적인 클래스의 init()
방법의 차이를 처리 할 :Zend Framework 2에서 Fieldset 하위 클래스의 요소 유형을 설정하는 방법은 무엇입니까?
AbstractMyFooFieldset
namespace My\Form\Fieldset;
use Zend\Form\Fieldset;
use Zend\InputFilter\InputFilterProviderInterface;
abstract class AbstractMyFieldset extends Fieldset implements InputFilterProviderInterface
{
public function init()
{
$this->add(
[
'type' => 'multi_checkbox',
'name' => 'my_field',
'options' => [
'label_attributes' => [
'class' => '...'
],
'value_options' => $this->getValueOptions()
]
]);
}
public function getInputFilterSpecification()
{
return [...];
}
protected function getValueOptions()
{
...
return $valueOptions;
}
}
MyFooServerFieldset
을
namespace My\Form\Fieldset;
use Zend\Form\Fieldset;
class MyFooServerFieldset extends AbstractMyFieldset
{
public function init()
{
parent::init();
$this->get('my_field')->setType('radio'); // There is not method Element#setType(...)! How to do this?
$this->get('my_field')->setAttribute('required', 'required'); // But this works.
}
}
설정하고 싶습니다. type
및 요소에 대한 일부 다른 구성, 예를 들어. type
및 required
속성 속성을 설정하는 것은 괜찮은 것 같습니다. 최소한 required
속성을 설정할 수 있습니다. 하지만 형식을 설정할 수 없습니다. Element#setType(...)
은 없습니다.
을 Zend\Form\Element
으로 설정하는 방법은 add
입니다.