Codeigniterで必要なすべての変数を取得し、それらの値をビューに渡すことに頭を悩ませようとしています。
概念は理解していますが、配列を繰り返し処理し、各キーに別の配列を追加することに固執しています。
$ data ['items']配列には、get_all()関数を介してモデルから渡されたデータが含まれています。クエリは基本的に「アイテムから*を選択」です。
各アイテムには複数の機能と写真があります。適切な値を取得するには、アイテムのIDが必要です。これを最初の配列($ data ['items'])から取得して、モデル関数に渡すことができます。
以下のコードでこれを実行しようとすると、さまざまなエラーが発生し続けます。foreachループの前に機能と画像の配列を定義しようとしましたが、それでもエラーが発生します。
私の構文は間違っていると確信しています。どんな助けでも大歓迎です。
$data['items'] = $this->amazon->get_all();
foreach ($data['items'] as $data )
$id = $data->id;
$data['features'] = $this->amazon->get_features($id);
$data['pictures'] = $this->amazon->get_pictures($id);
}
編集
フィードバックに基づいて、コードを次のように更新しました(コードの24〜30行目)。
$items = $this->amazon->get_all();
for($i=0; $i<count($items);$i++) {
$data = $items[$i];
$id = $data->id;
$items[$i]['features'] = $this->amazon->get_features($id);
$items[$i]['pictures'] = $this->amazon->get_pictures($id);
}
PHPはこれについて不平を言っています:PHP致命的なエラー:28行目の/var/www/ci/application/controllers/main.phpの配列としてstdClass型のオブジェクトを使用できません
アマゾンモデルの関数は次のとおりです。
function get_all()
{
$query = $this->db->get('items');
return $query->result();
}
function get_pictures($id) {
$query = $this->db->query("SELECT link FROM pictures WHERE item_id='$id' AND type IN('thumb_set')");
$style = "border-style:solid; border-width:1px";
$class = "modal-thumb";
$results = '';
foreach ($query->result() as $row) {
$results .= "<li style='$style' class='$class'><img src='$row->link' alt=''/></li>";
}
return $results;
}
function get_features($id) {
$query = $this->db->query("SELECT content FROM features WHERE item_id='$id' ORDER BY feature_num DESC");
$results = '';
foreach ($query->result() as $row) {
$results .= "<li>";
$results .= $row->content;
$results .= "</li>";
}
return $results;
}
'results()'の代わりに'results_array()'を使用する必要があると思いますか?私の結果は、現在のように配列ではなくオブジェクトとして返されますか?