我想从我的第一个形式检索数据到我的函数executeAddDomaines
使用这些到这个函数调用的第二个形式,但当我给$form参数到这个函数我有这个错误:
可捕获的致命错误:参数2传递给domaineActions::executeAddDomaines()必须是sfForm的实例,没有给出,在/home/web/extranet100p100.net/htdocs/lib/vendor/symfony/lib/action/sfActions.class.php第60行调用,并在/home/web/extranet100p100.net/htdocs/apps/backend/modules/domaine/actions/actions.class.php第206行定义
我的代码:
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');
}
那我该怎么做呢?
谢谢你
您可以尝试在会话中保存表单数据,然后在第二次操作中获取它。
试试这个(我没有测试):
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');
}
使用后,您可以从请求