Запрос БД возвращает только первый соответствующий результат

// Get all categories
$query = "SELECT name FROM bolt_taxonomy WHERE taxonomytype = :taxonomytype AND contenttype = :contenttype";
$map = array(
':taxonomytype'  => 'categories',
':contenttype' => 'news',
);
$categories = $this->app['db']->fetchAssoc($query, $map);

$response = $this->app->json(array('categories' => $categories));
return $response;

Возвращает:

{
"categories": {
"name": "life"}
}

Это только первая запись, которая соответствует вышеуказанному условию в таблице bolt_taxonomy. Как я могу заставить его вернуть весь список категорий?

1

Решение

Теперь это решается с помощью fetchAll:

// Get the category
$query = "SELECT name FROM bolt_taxonomy WHERE taxonomytype = 'categories' AND contenttype = 'news'";

$categories = $this->app['db']->query($query);
$result = $categories->fetchAll();

$response = $this->app->json(array('categories' => $result));
return $response;
1

Другие решения

Вам необходимо заполнить с помощью while или же foreach петля.

$categories = $this->app['db']->fetchAssoc($query, $map);

foreach($categories as $category) {
$result[] = $category;
}
$response = $this->app->json($result);
echo $response;
return $response;
0

По вопросам рекламы [email protected]