我正在使用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>';
?>
现在我知道我正在向我的视图发送数组但我想知道我的视图中是否有数组。我可以通过另一种方法获得记录,但我认为这不是一个好习惯。所以任何人都可以帮助我如何检测我的视图中是否有数组?
答案 0 :(得分:3)
在您的控制器中,改为发送父数组:
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
}
答案 1 :(得分:2)
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变量名称规则阻止数字变量名称时,您无法访问数据。