我在CodeIgniter中有一个控制器函数,如下所示:
$perm = $this->job_m->getIdByGroup();
foreach($perm as $pe=>$p)
{
$pId = $p['id'];
$result = $this->job_m->getDatapermission($pId);
}
$data['permission'] = $result;
我需要做的是在视图中列出结果中的数据,但是在使用此方法时我只得到最后一个值。如何将所有结果传递给视图?
答案 0 :(得分:1)
将其存储在数组中。像这样:
foreach($perm as $pe=>$p){
$result[] = $this->job_m->getDatapermission($p['id']);
}
答案 1 :(得分:0)
因为$ result不是数组...
试试这个:
$result=array();
foreach($perm as $pe=>$p)
{
$pId = $p['id'];
$result[] = $this->job_m->getDatapermission($pId);
}
$data['permission'] = $result;
答案 2 :(得分:0)
我的回答使用counter
来在需要时显示单个组结果。
猜测你需要循环并显示$ result的值,可能是$ query-> result()返回的数组或对象。事情可能有点复杂。
示例:如果$ perm是一个包含5个项目(或组)的数组,则计数器会分配键1 - 5而不是0 - 4,因为[]可能会产生误导。使用第一个视图示例,您可以选择显示单个组值,如果您想通过url段传递它。使代码更灵活,可重用。例如。你想只显示第2组的返回,在我的例子中,$ result [2]会做下一个代码运行的其他操作。请参阅我在代码中的评论。
$perm = $this->job_m->getIdByGroup();
$counter = 1;
foreach($perm as $pe=>$p)
{
$pId = $p['id'];
$result[$counter] = $this->job_m->getDatapermission($pId);
$counter++;
}
$data['permission'] = $result;
我添加了一个计数器或密钥,因此您可以定位特定级别。如果这些组是: 男人,女人,男孩,女孩,儿童;你知道女性是第二组(2)如果你想显示该组的价值,你不需要重写下面的代码。只需传递组密钥就像按顺序告诉它一样简单。要无限制地显示所有循环,请使用第二个视图示例。要同时使用它们,请使用if语句。
###To access it you could target a specific level like
if(isset($permission)){
foreach($permission[2] as $key => $value){
echo $value->columnname;
}
###To get all results:
foreach($permission as $array){
foreach($array as $key => $value){
echo $value->columnname;
}
}
}