Если вы расширяете форму со своим собственным классом:
class MyForm extends \Zend\Form\Form
Вы можете пройти в любом переменных, которые вы хотели через его конструктор и передать имя формы для родительского класса Form как таковые:
public function __construct($myVar, $myVar2)
{
//do things with my vars
$this->setVar($myVar);
// send name to parent constructor
parent::__construct('myFormName');
}
Вы также можете рассмотреть возможность использования Factory
, чтобы ввести свою зависимость, которые могут быть сконфигурированы, например, в вашем Module.php
:
public function getFormElementConfig()
{
return array(
'factories' => array(
'MyForm' => function (ServiceManager $sm) {
return new \MyNamespace\MyForm($sm->get('someDependancy'));
},
)
);
}
Эта форма теперь доступна через сервис локатора из любого сервиса осознает класс:
$serviceLocator->get('FormElementManager')->get('MyForm');
С зависимостями инжектированных через завод.
Как насчет '$ form-> setAttribute'? – raina77ow