如果您还没有使用 atk 4.1 进行开发,您可以下载 4.2 并查看此处的示例。您可以利用 4.2 中的许多新功能,并且正在更新演示和示例以反映这些更改。
在 4.2 中,有一个这样的两列样式示例
class StylingForm extends Form {
function init(){
parent::init();
$f=$this;
$f->addField('line','name')->validateNotNull()
->setFieldHint('Click "Register" to see error');
$f->addField('line','email')
->validateNotNull()
->validateField('filter_var($this->get(), FILTER_VALIDATE_EMAIL)')
.. .. ..
}
functoin init() {
// Stacked class puts labels on top of fields
$form=$page->add('StylingForm');
$form->addClass('stacked atk-row');
$form->template->trySet('fieldset','span6');
$sep=$form->addSeparator('span6');
$form->add('Order')->move($sep,'before','age')->now();
}
在 atk4.1 中,表单是一个视图,因此它在 atk4/templates/shared/view/form.html 中有一个模板,在 atk4/lib/View/form.php 中有一些代码
在您从此处提到的老虎机示例中,addColumns(2) 用于将视图的宽度设置为可用屏幕宽度的 20%,但在示例中,每一列都将包含老虎机的视图. 如果您想在同一页面上创建表单,您可以使用相同的功能,但您似乎想要的是跨两列的单个表单,带有一个提交按钮。
如果非要继续使用atk4.1,则需要查看form.html。Romans 可能会建议您如何在该版本中创建两列表单。我可以看到在 css 中定义了一些类,例如 atk-form-vertical-2col 和 atk-form-vertical-3col 并且有一个函数 setFormClass 来设置它们,但我看不到您将设置哪些标签来将字段放入右手边 - 默认情况下,一切都在左边。