0

我在传递关联数组和重定向/转发时遇到问题,在动作文件中完成。使用 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");

这是返回的错误消息:

可捕获的致命错误:第 98 行的 /var/www/perfecthomeweb/lib/vendor/symfony-1.3.11/lib/escaper/sfOutputEscaperObjectDecorator.class.php 中的类产品对象无法转换为字符串

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

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

结合所需的关联数组,如下所示:

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

这显然没有用,我很确定我缺乏 POST/GET 知识是部分原因。但是,如果使用 $request->getReferer() 可以做到这一点,那将是我的明确偏好,因为它感觉流畅和动态。

4

1 回答 1

0

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

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

例如,通过尽早引发错误:

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

然后,您可以考虑要放在那里的字符串表示形式。因为我不知道,我不能建议。可能您正在寻找 JSON?

$products[$product->getId()] = json_encode($product);
于 2013-08-28T11:36:31.973 回答