我有一个关于使用form_dropdown()的问题。
表:类别
cat_id
cat_name
控制器:
function index()
{
$this->load->model('category_model');
$data['category'] = $this->category_model->cat_getallcat();
$this->load->view('category_input',$data);
}
型号:category_model
function cat_getallcat()
{
$this->load->database();
return $this->db->get('category')->result();
}
查看:
<?php
$this->load->helper('form');
echo form_open('send');
$list[''] = 'Please select a Category';
foreach($query as $row)
{
$list[$row->cat_id] = ucfirst(htmlspecialchars($row->cat_name));
}
echo form_dropdown('category', $list);
echo form_close();
?>
获得错误:
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: views/category_input.php
Line Number: 28
答案 0 :(得分:1)
->result()
只返回第一行,所以这个函数就是你要循环的。
模型
function cat_getallcat()
{
$this->load->database();
return $this->db->get('category');
}
查看
foreach($query->result() as $row)
{
$list[$row->cat_id] = ucfirst(htmlspecialchars($row->cat_name));
}
编辑:
此外,您要将结果作为$data['category']
发送,然后尝试以$query
的形式访问它。所以,在这个例子中,foreach将是foreach($category->result() as $row)
答案 1 :(得分:1)
你要求foreach遍历$ query,但我没有将$ query设置为我能看到的任何变量。
由于您设置$ data ['category']来保存控制器中的查询结果(),您需要在视图中循环$ category:
foreach($category as $row)
{
$list[$row->cat_id] = ucfirst(htmlspecialchars($row->cat_name));
}