0

我在一个页面上有 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()

我是否正确传递了表格?

谢谢

4

1 回答 1

1

正如错误消息所说,您显然没有正确执行;)

由于您的propertyActions类扩展了抽象类autoPropertyActions,因此在实现抽象类中声明的函数时有一些严格的标准。这就是为什么它抱怨你做了一些意想不到的改变。

事实上——你真的必须使用这个processForm功能吗?毕竟你自己调用了这个函数,所以你可以随意调用它,然后类就不会抱怨了(因为原来的processForm会保持不变)。

于 2013-05-29T06:46:08.657 回答