0

私はci/焚き火アプリケーションを持っています。クエリの結果をループしようとしています。ただし、レコードとその個々のフィールドをループする私のビューのロジックは、非オブジェクトのプロパティを取得しようとしているというメッセージで失敗します。私のモデルでは、返すものがある場合にのみデータを返すようにしています...次のように:

       if ($query->num_rows() > 0) 
        { 
            return $query->result_array(); //returns an object of data
        }

ビューでは、データを取得していることを証明するために、次のデバッグステートメントも追加しました。

  print_r($records);

それは私に次の出力を与えます:(私は簡潔にするためにサブセットだけを含めました..)

Array ( [0] => Array ( [category_id] => 59 [name] => procs [description] => [parent_id] => 4 [deleted] => 0 [created_on] => 2012-09-28 00:00:00 [modified_on] => 0000-00-00 00:00:00 ) [1] => Array ( [category_id] => 62 [name] => test [description] => [parent_id] => 4 [deleted] => 0 [created_on] => 2012-09-28 00:00:00 [modified_on] => 0000-00-00 00:00:00 ) 

そして最後に、$ recordsをループするために使用するロジック(ここでもサブセットのみ)を次に示します。

  <?php foreach ($records as $record) : ?>
   <tr>
    <td><input type="checkbox" name="checked[]" value="<?php echo $record->category_id ?>" /></td>

それはへの呼び出しで死にかけている$record->category_id

編集1

同じテーブルからすべてのレコードを返すためにbonfireが作成した私のコントローラーのindex()メソッドは$record->category_id、ビューの構文を正常に使用します。私は使用できることを知っています$record['category_id']が、なぜそれを他の方法で動作させることができないのか疑問に思っています。

任意の提案をいただければ幸いです。ありがとう。

4

2 に答える 2

2

使用する

$record['category_id ']

トリックを行う必要があります、Wezy

于 2013-01-27T15:30:41.920 に答える
1

私はあなたがオブジェクトを取得しているとは思いません(そうでなければprint_rは異なっていたでしょう)。とはいえ、「foreach」メソッドはオブジェクトではなく配列トラバーサルに使用されます。オブジェクトが「foreach」ループに提供された場合でも、同等の連想配列に変換されるため、「$record」はもはや存在しません。オブジェクトですが、連想配列です。

于 2013-01-27T16:02:56.653 に答える