2013-08-28 5 views
0

У меня возникли проблемы с передачей ассоциативного массива вместе с перенаправлением/переходом, выполненным в файле действий. Использование Symfony 1.3.11.

Очевидно, что есть некоторые недостатки, однако это мой ход мысли: Сделайте db-запрос, проанализируйте результаты, добавьте их в ассоциативный массив (их идентификатор как ключ) и перенаправьте пользователя на страницу, откуда он пришел вместе с ассоциативным массивом.

$products = array(); 

foreach ($results as $res) { 

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

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

Это возвращается сообщение об ошибке:

Catchable fatal error: Object of class Product could not be converted to string in /var/www/perfecthomeweb/lib/vendor/symfony-1.3.11/lib/escaper/sfOutputEscaperObjectDecorator.class.php on line 98

Примечания: Мое первоначальное предпочтением было использовать

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

в сочетании с требуемым ассоциативным массивом, похожими это:

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

Это, очевидно, не сработало, и я уверен, что мое незнание POST/GET частично виновато. Однако, если это выполнимо с помощью $ request-> getReferer(), это было бы моим явным предпочтением, поскольку оно чувствует себя жидким и динамичным.

ответ

0

Одно решение, чтобы предотвратить ошибку, чтобы создать строку в этой строке уже:

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

Например, провоцируя ошибки рано:

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

Затем вы можете думать о том, какая строка представление вы хотите положить туда. Как я не знаю, я не могу этого предложить. Наверное, вы ищете JSON?

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

Я закончил установку значений форматированным строковым представлением объекта. Кажется, вы были правы в том, что должны передавать его как String, а не объект! – krystah

 Смежные вопросы

  • Нет связанных вопросов^_^