Symfony 1.4表单小组件ID生成无法正常工作

时间:2012-07-25 15:14:44

标签: symfony1 symfony-1.4

我遇到了Symfony Widgets的id生成问题 (我是symfony的新手,所以我可能犯了一些错误。)

在工作中我们使用

$form->render();

渲染表单,但这使我们对表格布局没有足够的控制权 所以我不得不打破渲染过程并手工制作表格 我现在正在使用

$Form['<cellname>']->render();

用于渲染单个小部件。

但是使用新的渲染我的小部件的ID就错了。

该表单用于跟踪单个用户每年完成项目的份额。

旧方法的ID都是

的形式
project_<CustomIdforDifferentYears>_<UserId>_share 

但现在我得到了

project_year_member_share

适用于所有领域。

1 个答案:

答案 0 :(得分:0)

Symfony会根据一些事情自动生成小部件的ID。

首先是表单名称,可以像下面这样指定:

$this->widgetSchema->setNameFormat('my_form[%s]');

现在,该窗体中每个窗口小部件的ID都将以“my_form”为前缀。

其余部分来自小部件名称。因此,如果窗口小部件名称为“email”,则窗口小部件的ID将生成为“my_form_email”。

如果要在模板中指定小部件的id。您也可以将此作为render方法的一部分,该方法接受一系列选项,如下所示:

echo $form['email']->render(array('id' => 'my_different_id'));