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

ノート:

私の答えは、counter必要に応じて単一のグループ結果を表示できるようにするために a を使用しています。

ループして $result の値を表示する必要があることから推測すると、おそらく $query->result() によって返される配列またはオブジェクトです。物事は少し複雑かもしれません。

例: $perm が 5 つの項目 (またはグループ) の配列である場合、カウンターは [] のように 0 - 4 ではなく 1 - 5 をキーに割り当てますが、これは誤解を招く可能性があります。最初のビューの例を使用すると、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 であることがわかります(2)。そのグループだけの値を表示したい場合は、以下のコードを書き直す必要はありません。グループキーを渡すだけで、シーケンスで伝えるのと同じくらい簡単です。制限なしですべてのループを表示するには、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 に答える
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 に答える