我使用的是CodeIgniter框架。我正在向视图发送一个数组,但无法在视图中获取该数组。
这是我的控制器代码:
public function edit($id)
{
$record = $this->Start_model->get_entry($id);//receiving array from model
$this->load->view('edit',$record);//send array to my view
}
这是我发送的控制器上的阵列:
Array
(
[0] => Array
( [id] => 1 [name] => Hamza [age] => 20 [address] => audit and account [phone] => 03000000000 )
)
但是当我调用这个数组视图时,我得到了这个错误:
未定义变量:记录
这就是我如何看到我的阵列:
<?php
echo '<pre>';
print_r($record);
echo '</pre>';
?>
现在我知道我正在向我的视图发送一个数组,但我想知道我的视图中是否有数组。我可以通过另一种方法获得记录,但我认为这不是一个好的做法。所以有人可以帮助我如何检测我的视图中是否有数组?
在控制器中,发送一个父数组:
public function edit($id)
{
$data = array();
$data['record'] = $this->Start_model->get_entry($id); // provided this is not empty
$this->load->view('edit', $data);
}
那么在你看来:
foreach($record[0] as $key => $value) {
echo $value['id'];
// the rest blah blah
}
Codeigniter提取传递给视图的数组,根据数组的键创建变量。要按您的意愿工作,请传递一个带有键或record
和数组值的数组:
public function edit($id)
{
$data = array('record' => $this->Start_model->get_entry($id));
$this->load->view('edit',$data);//send array to my view
}
然后这将工作在你的看法:
<?php
echo '<pre>';
print_r($record);
echo '</pre>';
?>
按照您当前发送数据的方式,它将被提取到数组中每个元素的单独变量中,但是,由于您的数组是数字索引的,php变量名规则禁止使用数字变量名,因此您无法访问数据。