0

我想将我的第一个表单中的数据检索到我的函数executeAddDomaines中,以将这些数据用于该函数调用的第二个表单,但是当我将 $form 参数提供给这个函数时,我遇到了这个错误:

可捕获的致命错误:传递给 domaineActions::executeAddDomaines() 的参数 2 必须是 sfForm 的实例,没有给出,在 /home/webs/extranet100p100.net/htdocs/lib/vendor/symfony/lib/action/sfActions.class 中调用.php 在第 60 行并在第 206 行的 /home/webs/extranet100p100.net/htdocs/apps/backend/modules/domaine/actions/actions.class.php 中定义

这是我的代码:

protected function processForm(sfWebRequest $request, sfForm $form)
{
$name = $form->getName();

$form->bind($request->getParameter($name), $request->getFiles($name));

if($form->isValid())
{

    if($form->isNew())
        {   
        $this->executeAddDomaines($request, $form);
        $this->redirect('@add_domaines');

         }
[...]
}

public function executeAddDomaines(sfWebRequest $request, sfForm $form)
{       

      $name = $form->getName();

      $params = $request->getParameter($name);

      $this->list_domaines = $params;


      $this->form = new AddDomainesForm();


      $this->setTemplate('listDomaines');
}

那么我该怎么做呢?

谢谢 :)

4

1 回答 1

0

您可以尝试在会话中保存表单数据,然后在第二个操作中获取它。

试试这个(我没有测试):

protected function processForm(sfWebRequest $request, sfForm $form)
    {
    $name = $form->getName();

    $form->bind($request->getParameter($name), $request->getFiles($name));

    if($form->isValid())
    {

        if($form->isNew())
            {   
            # Replaced
            $request->setAttribute("form", $form);
            $this->redirect('@add_domaines');

             }
    [...]
    }

    public function executeAddDomaines(sfWebRequest $request)
    {      
          # Added
          $form = $request->getAttribute("form");

          $name = $form->getName();

          $params = $request->getParameter($name);

          $this->list_domaines = $params;


          $this->form = new AddDomainesForm();


          $this->setTemplate('listDomaines');
    }

使用后,您可以从请求中清除属性形式

于 2013-04-13T10:28:51.907 回答