Я действительно застрял с этим.Я должен создать динамическую мультиязычную форму и сделать это следующим образом:
class TreeForm extends BaseTreeForm
{
public function configure()
{
parent::configure();
[...]
$languages = sfConfig::get('app_language_list');
$supportedlangs = $this->getObject()->getSupLangs();
if (empty($supportedlangs))
{
$supportedlangs = $languages;
}
$this->embedI18n($supportedlangs);
foreach ($supportedlangs as $lang)
{
$this->widgetSchema->setLabel($lang, $i18n->__($lang));
}
var_dump(array_keys($this->getEmbeddedForms()));
}
}
class treeActions extends autoTreeActions
{
public function executeEdit(sfWebRequest $request)
{
$this->tree = $this->getRoute()->getObject();
echo "action::edit->before getform():<br/>\n";
$this->form = $this->configuration->getForm($this->tree);
echo "action::edit->after getform():<br/>\n";
var_dump(array_keys($this->form->getEmbeddedForms()));
}
}
Я думал, что это должно сработать, но вывод выглядит так:
action :: edit-> перед getform ():
массив
0 => строка 'seuzo_szolg_addresses' (длина = 21)
1 => строка 'hu' (длина = 2)
2 => строка 'en'(длина = 2)
action :: edit-> после getform ():
массив
0 => строка 'seuzo_szolg_addresses' (длина = 21)
Что за хреньмои встроенные формы i18n исчезают сразу после инициализации основной формы?Любая помощь очень ценится.