如何将多个缩小数组传递给视图? 控制器代码
public function index(){
data['navs'] = array(
'name' => array('one', 'two', 'three'),
'link' => array('one', 'two', 'three'));
$this->load->view('adminView', $data);}
查看代码
<?php if ($navs) {
foreach ($navs as $nav) {
echo('<li><a href="' . $nav->link . '">' . $nav->name . '</a></li>');
}
}?>
答案 0 :(得分:4)
首先,你需要以正确的方式构建数组。它应该是这样的:
$data['navs'] = array( array( 'name' => 'one',
'link' => 'linkone'),
array( 'name' => 'two',
'link' => 'linktwo')
);
$this->load->view('adminView', $data);
然后在你看来:
foreach($navs as $n){
echo "<li><a href='{$n['link']}'>{$n['name']}</a></li>";
}
答案 1 :(得分:1)
在视图中,将您的数据称为数组元素,而不是对象属性(您传递的是数组数组,而不是对象数组)。根据您的控制器,您的视图代码应如下所示:
foreach ($navs as $nav) {
echo('<li><a href="' . $nav['link'] . '">' . $nav['name'] . '</a></li>');
}
但是,由于$ nav ['link']和$ nav ['name']是两个数组,因此无法输出正确的结果。您需要调用他们的任何元素或相应地更改控制器。
答案 2 :(得分:-2)
如何使用php中的codeigniter控制器获取动态数组值
Array
(
[id] => 2
[name] => Wellness & Spa
[isSelected] => true
[subModules] => Array
(
[0] => Array
(
[id] => 1
[name] => Spa1
[isSelected] => true
[0] => object:81
)
[1] => Array
(
[id] => 2
[name] => Spa2
[isSelected] => true
[0] => object:82
)
[2] => Array
(
[id] => 3
[name] => Wellness
[isSelected] => true
[0] => object:83
)
)
)