データを検索する (2/4)
作成:2011-11-21 08:13
更新:2011-12-06 19:37
更新:2011-12-06 19:37
■‘all’で取り出されたデータの構造
取り出されたデータをそのままprint_rで書きだしていますので、表示されたデータを良く調べてみましょう。入れ子構造の配列になっていることがわかるでしょう。この構造を整理するとこうなります。
1. データは、配列となっています。各配列に、それぞれのデータがまとめられています。
2. 配列内のデータは、モデル名をキーとする連想配列になっています。ここでは、MySampleDataをキーとして、1つ1つのデータが保管されています。
3. このMySampleDataキーの値は、やはり連想配列になっており、テーブルの各項目名をキーにして、それぞれの値が保管されています。
――どうですか。ずいぶんと深い構造になっていることがわかりますね。この構造さえわかれば、データを整理して表示させるなどすることは十分可能でしょう。実際の利用例として、先ほどのindex.ctpの修正例を下に掲載しておきます。アクセスすると、各データがテーブルにきれいに整理され表示されます。
注意して欲しいのは、これは「find(‘all’)」で得られたデータの構造である、という点です。findには他にもオプションがあるのですが、’all’でない場合は、またデータの構造が微妙に違ってきたりします。’all’のように「複数のデータが取得される」という場合の基本構造、と考えるとよいでしょう。
1. データは、配列となっています。各配列に、それぞれのデータがまとめられています。
2. 配列内のデータは、モデル名をキーとする連想配列になっています。ここでは、MySampleDataをキーとして、1つ1つのデータが保管されています。
3. このMySampleDataキーの値は、やはり連想配列になっており、テーブルの各項目名をキーにして、それぞれの値が保管されています。
――どうですか。ずいぶんと深い構造になっていることがわかりますね。この構造さえわかれば、データを整理して表示させるなどすることは十分可能でしょう。実際の利用例として、先ほどのindex.ctpの修正例を下に掲載しておきます。アクセスすると、各データがテーブルにきれいに整理され表示されます。
注意して欲しいのは、これは「find(‘all’)」で得られたデータの構造である、という点です。findには他にもオプションがあるのですが、’all’でない場合は、またデータの構造が微妙に違ってきたりします。’all’のように「複数のデータが取得される」という場合の基本構造、と考えるとよいでしょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
※index.ctp <h1>Index Page</h1> <p>MySampleData Index View.</p> <table> <?php foreach ($datas as $data): ?> <tr> <td><?php echo $data['MySampleData']['name']; ?></td> <td><?php echo $data['MySampleData']['mail']; ?></td> <td><?php echo $data['MySampleData']['tel']; ?></td> </tr> <?php endforeach; ?> </table>
※関連コンテンツ
「初心者のためのCakePHP2 プログラミング入門」に戻る