在 4.2.1 中更改表单类


Have form classes changed in 4.2.1

使用此处记录的 2 列http://agiletoolkit.org/doc/form/styling在 4.2.1 中不起作用

$f->setFormClass('basic atk-form-basic-2col');
方法

有没有改变?

是的,表单现在只支持"堆叠"类,它将变量放在标签上方。窗体不再具有自己的布局,但它们使用默认网格系统。例如,如果您为表单分配"atk-grid"列,然后在字段集上使用"span3",您将获得垂直表单块。

如果将 atk 行类分配给字段集并在字段上使用 span3,您将获得水平表单块。

设置表单类:$form->setClass('atk-row')

第一个字段集已包含在模板中,因此要更改它:$form->template->trySet('fieldset', 'span4');

后续字段集可以使用$form->addSeparator('span5');

各个字段类通过$field->setAttr('class','...');

示例(具有水平布局的基于模型的表单):

$form=$this->add('Form')->setClass('stacked');
$form->template->trySet('fieldset','atk-row');
$form->setModel('User');
foreach($form->elements as $field){
    if($field instanceof Form_Field){
        $field->setAttr('class','span3');
    }
}
// If you want to separate fields into 2 rows:
$sep=$form->addSeparator('atk-row');
$form->add('Order')->move($sep,'middle')->now();

为了简化所有这些,您可以使用自定义表单模板。查找form.html并将其与最新的Github母版中的form_horizontal.html进行比较。这应该可以让您很好地了解如何创建自己的表单布局。这并不是说敏捷工具包只有一种方法来构建表单。

附言我已经更新了文档页面以显示不兼容警告。