在操作/视图中验证2个表单

时间:2013-05-28 20:19:39

标签: symfony1 symfony-1.4 symfony-forms

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

我是否正确传递了表格?

由于

1 个答案:

答案 0 :(得分:1)

由于错误消息显示您显然没有正确执行;)

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

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