我正在努力获取表值列表以正确显示在select元素中。我不仅得到一个字符串下拉框,而且每个值的索引也显示在下拉框中。
以下是获取值的方法:
public function getCategoryList()
{
$em = \ORM::entityManager();
$query = $em->createQuery('SELECT c.category FROM Car\CarCategory c');
return $query->getResult();
}
在控制器中:
$categoryList = CarCategory::getCategoryList();
$categories = array();
if (is_array($categoryList) && count($categoryList) > 0) {
foreach ($categoryList as $key => $value) {
array_push($categories, $value);
}
}
$this->set("categories", $categories);
在视图中:
echo $form->select('category', $categories, $selected_category);
但是我看到的是:
0
Budget
1
Economy
etc.
和
$this->set("categories", array_values($categoryList));
相同。
[已解决] 我知道了!我还没有意识到查询结果是2D数组。因此可行:
foreach ($categoryList as $key) {
array_push($categories, $key['category']);
}