У меня есть некоторый код, который проверяет параметр и вызывает метод peer, чтобы получить элементы из БД.
Мне нужно получить эти элементы в JSON.
Мой коллегаметод подобен:
public static function searchFromRequest($word)
{
$c = new Criteria();
$c->addJoin(self::ARTICLE_ID, ArticlePeer::ID);
$c->add(self::TITLE, '%'.$word.'%', Criteria::LIKE);
$c->addAnd(self::ARTICLE_ID, null, Criteria::ISNOTNULL);
$c->addAscendingOrderByColumn(self::TITLE);
return self::doSelect($c);
}
, и мое действие:
public function executeSearch()
{
$this->word = $this->getRequestParameter('word');
$this->content_type = $this->getRequestParameter('content_type');
if($this->content_type == 'article')
{
$words = ItemPeer::searchFromRequest($this->word);
}
else
{
echo "Nothing here";
}
Я могу var_dump($words)
, и я получаю массив (коллекцию) предметов.Проблема в том, как мне вернуть все элементы в JSON?
Я пытался использовать:
$this->getResponse()->setHttpHeader('Content-type', 'application/json');
$words = ItemPeer::searchFromArticleRequest($this->word);
return $this->renderText(json_encode($words));
Но это просто возвращает множество пустых скобок JSON: [{},{},{},{},{},{},{},{},{},{},{},{},{},{}]
Спасибо