如何在 fuelphp 中管理多个表单模板

how to manage multiple form templates in fuelphp

你好,我刚从 CI 迁移到 Fuel....我正在使用 Fieldset class 在视图中自动生成表单....我面临的问题是我有多个表单模板的类型,即我的一些模型使用 twitter bootstrap 水平内联表单,其中很少有模型使用自定义模板...我能够在 form.php 中设置单一类型的表单模板,我从 fuel/core/config/form.php 到 fuel/app/config/form.php

这是表单模板的示例 return 数组

return array(
// regular form definitions
'prep_value'                 => true,
'auto_id'                    => true,
'auto_id_prefix'             => 'form_',
'form_method'                => 'post',
'form_template'              => "\n\t\t{open}\n\t\t<table>\n{fields}\n\t\t</table>\n\t\t{close}\n",
'fieldset_template'          => "\n\t\t<tr><td colspan=\"2\">{open}<table>\n{fields}</table></td></tr>\n\t\t{close}\n",
'field_template'             => "\t\t<tr>\n\t\t\t<td class=\"{error_class}\">{label}{required}</td>\n\t\t\t<td class=\"{error_class}\">{field} <span>{description}</span> {error_msg}</td>\n\t\t</tr>\n",
'multi_field_template'       => "\t\t<tr>\n\t\t\t<td class=\"{error_class}\">{group_label}{required}</td>\n\t\t\t<td class=\"{error_class}\">{fields}\n\t\t\t\t{field} {label}<br />\n{fields}<span>{description}</span>\t\t\t{error_msg}\n\t\t\t</td>\n\t\t</tr>\n",
'error_template'             => '<span>{error_msg}</span>',
'group_label'                => '<span>{label}</span>',
'required_mark'              => '*',
'inline_errors'              => false,
'error_class'                => null,
'label_class'                => null,

// tabular form definitions
'tabular_form_template'      => "<table>{fields}</table>\n",
'tabular_field_template'     => "{field}",
'tabular_row_template'       => "<tr>{fields}</tr>\n",
'tabular_row_field_template' => "\t\t\t<td>{label}{required}&nbsp;{field} {error_msg}</td>\n",
'tabular_delete_label'       => "Delete?",

);

我想要多个这样的表单模板,这样我就可以使用 $fieldset->form()->build() 函数在需要的地方自动生成表单...

有什么办法吗??

是的。试试这个:

forge($name = 'default', $config = array());

$article_form = Fieldset::forge('article',array(
// regular form definitions
'prep_value'                 => true,
'auto_id'                    => true,
'auto_id_prefix'             => 'form_',
'form_method'                => 'post',
'form_template'              => "\n\t\t{open}\n\t\t<table>\n{fields}\n\t\t</table>\n\t\t{close}\n",
'fieldset_template'          => "\n\t\t<tr><td colspan=\"2\">{open}<table>\n{fields}</table></td></tr>\n\t\t{close}\n",
'field_template'             => "\t\t<tr>\n\t\t\t<td class=\"{error_class}\">{label}{required}</td>\n\t\t\t<td class=\"{error_class}\">{field} <span>{description}</span> {error_msg}</td>\n\t\t</tr>\n",
'multi_field_template'       => "\t\t<tr>\n\t\t\t<td class=\"{error_class}\">{group_label}{required}</td>\n\t\t\t<td class=\"{error_class}\">{fields}\n\t\t\t\t{field} {label}<br />\n{fields}<span>{description}</span>\t\t\t{error_msg}\n\t\t\t</td>\n\t\t</tr>\n",
'error_template'             => '<span>{error_msg}</span>',
'group_label'                => '<span>{label}</span>',
'required_mark'              => '*',
'inline_errors'              => false,
'error_class'                => null,
'label_class'                => null,

// tabular form definitions
'tabular_form_template'      => "<table>{fields}</table>\n",
'tabular_field_template'     => "{field}",
'tabular_row_template'       => "<tr>{fields}</tr>\n",
'tabular_row_field_template' => "\t\t\t<td>{label}{required}&nbsp;{field} {error_msg}</td>\n",
'tabular_delete_label'       => "Delete?",
));