Symfony:$ request-> setParameter不接受Object

时间:2013-08-28 11:31:00

标签: php post get symfony1 parameter-passing

我无法在动作文件中传递关联数组以及重定向/转发。使用Symfony 1.3.11。

显然存在一些缺陷,但这是我的思路:进行数据库查询,解析结果,将它们添加到关联数组(它们的ID作为键)并将用户重定向到页面他和关联数组一起来了。

$products = array();

foreach ($results as $res) {

  $product = $res->getProduct();
  $products[$product->getId()] = $product;
}

$this->getRequest()->setParameter("products", $products);
$this->forward("main", "index");

这是返回的错误消息:

  

可捕获的致命错误:无法转换类Product的对象   串入   /var/www/perfecthomeweb/lib/vendor/symfony-1.3.11/lib/escaper/sfOutputEscaperObjectDecorator.class.php   在第98行

注意:我最初的偏好是使用

$this->redirect($request->getReferer());

与所需的关联数组一起使用,如下所示:

$this->redirect($request->getReferer() . "?persons=" . $persons);

这显然不起作用,我很确定我对POST / GET缺乏了解是部分原因。但是,如果使用$ request-> getReferer()这是可行的,那将是我明确的偏好,因为它感觉流畅和动态。

1 个答案:

答案 0 :(得分:0)

防止错误的一个解决方案是在此行中创建一个字符串:

$products[$product->getId()] = $product;

例如,通过及早激发错误:

$products[$product->getId()] = (string) $product;

然后,您可以考虑要将哪个字符串表示放在那里。我不知道,我无法暗示。可能你正在寻找JSON?

$products[$product->getId()] = json_encode($product);