我正在尝试将数据加载到表单中。我正在使用奶酪叔叔的引导表单模块。据我了解,我通常会调用$form->loadDataFrom(Customer::get()->byID(4));
但引导模块以不同的方式构建表单。
//CREATE CUSTOMER FORM
public function CustomerForm() {
return BootstrapForm::create(
$this,
"CustomerForm",
FieldList::create(
TextField::create("Name","Name")
TextField::create("Surname","Surname"),
FieldList::create(
FormAction::create("AddCustomer","Add customer")
->setStyle("success")
),
RequiredFields::create(array("Name","Surname","Tel1", "Address")),
/// I think the load data method should go here but i keep getting errors
BootstrapForm::loadDataFrom(Customer::get()->byID(4)
)
)
}
任何帮助将不胜感激。
您需要在
表单创建之外调用 loadDataFrom(( 函数,以传入字段填充的数据对象。
注意:在下面的示例中,传递到 BootstrapForm::create(( 中的每个参数都被拆分为变量。这往往会使代码更具可读性和易用性,如果你以后需要更改表单参数。
我发现这是一个很好的做法,而不是试图将所有内容塞进一个方法调用中。
一旦数据被加载到表单中,我们返回表单对象:
return $form;
这使表单可用于视图图层。例如,在 SilverStripe *.ss 模板中,您可以通过在标记中放置一个$CustomerForm占位符来包含此表单。
希望对您有所帮助。
//CREATE CUSTOMER FORM
public function CustomerForm(){
$fields = FieldList::create(
TextField::create("Name","Name"),
TextField::create("Surname","Surname")
);
$actions = FieldList::create(
FormAction::create("AddCustomer","Add customer")
->setStyle("success")
);
$validator = RequiredFields::create(array("Name","Surname","Tel1", "Address"));
$form = BootstrapForm::create($this, "CustomerForm", $fields, $actions, $validator);
//Load your data into the form here.
$form->loadDataFrom(Customer::get()->byID(4));
return $form;
}