我想从我的第一个表单中检索数据到我的函数executeAddDomaines
,以便将这些数据用于此函数调用的第二个表单中,但是当我在参数中给$ form这个函数时我有这个错误:
可捕获的致命错误:传递给domaineActions的参数2 :: executeAddDomaines()必须是sfForm的一个实例,没有给出,在/home/webs/extranet100p100.net/htdocs/lib/vendor/symfony/lib/action/中调用第60行的sfActions.class.php,在第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');
}
那我怎么做呢?
谢谢:)
答案 0 :(得分: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');
}
使用后,您可以从请求中清除属性表单