0

我在 CodeIgniter 中有一个控制器函数,如下所示:

$perm = $this->job_m->getIdByGroup();
foreach($perm as $pe=>$p)
{
    $pId  =  $p['id'];
    $result = $this->job_m->getDatapermission($pId);
}

$data['permission'] = $result;

我需要做的是在视图中列出结果中的数据,但是在使用此方法时我只得到最后一个值。如何将所有结果传递给视图?

4

3 回答 3

1

将其存储在一个数组中。像这样:

foreach($perm as $pe=>$p){
   $result[] = $this->job_m->getDatapermission($p['id']);
}
于 2013-03-04T10:24:43.287 回答
0

因为 $result 不是数组...

尝试这个:

$result=array();
foreach($perm as $pe=>$p)
{
    $pId  =  $p['id'];
    $result[] = $this->job_m->getDatapermission($pId);
}

$data['permission'] = $result;
于 2013-03-04T10:32:35.633 回答
0

笔记:

我的答案使用 acounter在需要时启用单个组结果的显示。

根据您需要循环显示$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;
        }
    }
}
于 2013-03-04T10:57:42.583 回答