PHP初心者です。
laravelを使用し、PHPで開発を行っています。
Logicファイルに、DBからデータをリストで取得する文は
先輩が書いてくれたので、indexファイルへデータを表示させる部分を私が作ります。
ヒントとして:foreachでぐるぐるまわす
と教えてもらいました。
別のページで取得しているデータを
indexファイルのforeachへ渡す方法が分かりません。
どうかご教授お願いします。
Logicファイル内関係コード
$view_data['a_data'] = (DB接続)->select_all('category', array('parent_category_code' => $category_a_code, 'delete_flg' => FLG_FALSE), array('disp_order' => 'ASC')); foreach($view_data['a_data'] as $k => &$category_b) { $category_b['category_c'] = (DB接続) ->select_all('category', array('parent_category_code' => $category_b['category_code'], 'delete_flg' => FLG_FALSE), array('disp_order' => 'ASC')); foreach($category_b['category_c'] as $k => &$category_c) { $help = (DB接続) ->select_all('help', array('category_c' => $category_c['category_code'], 'delete_flg' => FLG_FALSE), array('disp_order' => 'ASC')); $category_c['help'] = empty($help) ? array() : $help; } unset($category_c); } unset($category_b); return $view_data;
index.phpファイル
こういうこと?と書いてみた失敗コード
<? php foreach ($a_data as $row) { php echo $row['a_data']; php echo $row['category_b']; php echo $row['category_c']; ?>
とーりあえず、ソースコードをコードブロックに入れてインデントし、見やすくして助言を得られやすくするところからかなぁ…
ご指摘ありがとうございます。できるだけ見やすくなるように修正いたしました。
それで、Logicの方で return $view_data; しているということは、index.php ではそれが利用出来て、$a_data というのがそれであると判断してよいのですか?
はい、viewにあるindex.phpにfor eachでぐるぐる回して表示するだけだから、と言われています。
んーでも、Logicのほうみると、 $view_data['a_data'] っていうのがあって、a_dataというのは $view_data の要素のキー名のようにみえるんですけど、$a_data で取得した情報にアクセスできるようにしている部分が見当たらないので、かなりあやしいっす。
ちょっと試しに、 print_r($a_data); してみてもらえますか?
夜分に対応していただいてありがとうございます。作業最初、LogicからのデータをControllerを経由してviewのindex.phpへ渡すのかな?と考えて先輩へ相談しましたが、違うとの事でした。コードを試す件ですが、出社してからでないと試さなくて、申し訳ないのですが、改めてご連絡させてください。
アンバサダーされた変数をunset で削除してるから起きそうではあるな
返信が遅くなり申し訳ありません。出社間もなく先輩からご指導いただきまして、解決していましまいた。ご協力いただいたのに申し訳ありません。ちなみに、 print_r($a_data);ではちゃんと中身を見ることができ、配列内の要素名を指定し間違えていたことと多次元配列の為、foreachで取り出したたものをさらにforeachでぐるぐるまわすことをしていなかったことが原因でした。
回答1件
あなたの回答
tips
プレビュー