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 に答える