我在页面上有2个表单,我想单独验证。
我有以下内容:
public function executeNew(sfWebRequest $request)
{
$this->propertyForm = new AdminNewPropertyForm();
$this->propertyCsvForm = new AdminNewPropertyImportForm();
$this->processForm($request, $this->propertyForm, $this->propertyCsvForm);
}
protected function processForm(sfWebRequest $request, sfForm $propertyForm, sfForm $propertyCsvForm)
{
if($request->hasParameter('property'))
{
if($request->isMethod('post'))
{
$propertyForm->bind($request->getParameter($propertyForm->getName()));
if($propertyForm->isValid())
{
$propertyForm->save();
$this->getUser()->setFlash('success', 'The property was successfully updated.');
} else {
$this->getUser()->setFlash('error', 'The property could not be saved.');
}
}
}
else {
if($request->isMethod('post'))
{
$propertyCsvForm->bind($request->getParameter($propertyCsvForm->getName()));
if($propertyCsvForm->isValid())
{
$propertyCsvForm->save();
}
}
}
}
然后我在视图中显示两种形式。
问题是,我在processForm()
Strict standards: Declaration of propertyActions::processForm() should be compatible with that of autoPropertyActions::processForm()
我是否正确传递了表格?
由于
答案 0 :(得分:1)
由于错误消息显示您显然没有正确执行;)
当您的propertyActions
类扩展抽象类autoPropertyActions
时,对抽象类中声明的函数的实现有一些严格的标准。这就是为什么它抱怨你做了一些意想不到的改变。
事实上 - 你真的必须使用processForm
功能吗?毕竟你自己调用了这个函数,所以你可以随意调用它,然后类不会抱怨(因为原来的processForm
将保持不变)。