CakePHPのお勉強 5回目 お問い合わせ一覧の表示
さて、ここまで入力に関する処理を色々と試しました。
ただこのままだとどんな問い合わせがあったかさっぱりわかりません。
そこで今回は問い合わせの一覧を表示してみたいと思います。
(1) コントローラへ一覧表示の処理を追加
コントローラに一覧表示の処理として「contactlist」アクションを追加する。
<?php class ContactsController extends AppController { // indexアクション public function index() {} // thanksアクション public function thanks() { if($this->request->is('post')) { $this->Contact->set($this->request->data); if($this->Contact->validates()) { $this->Contact->create(); $this->Contact->save($this->request->data); //POSTデータを受け取った場合の処理を記述 $this->set('username', $this->request->data['username']); } else { $this->render('reinput'); } } else { $this->redirect('index'); } } // contactlistアクション public function contactlist() { $this->set('contacts', $this->Contact->find('all')); } }
37行目から42行目に一覧表示用の処理を追加。
ここでは「find」メソッドを使い登録済みの全データを取得しビューから参照可能なようにセット。
(2) 一覧表示用のビューを追加
次に一覧表示で利用するビューを追加する。
<table> <tr> <th>お名前</th> <th>メールアドレス</th> <th>お問い合わせ日時</th> </tr> <?php foreach ($contacts as $contact): ?> <tr> <td><?php echo $contact['Contact']['username']; ?></td> <td><?php echo $contact['Contact']['email']; ?></td> <td><?php echo $contact['Contact']['created']; ?></td> </tr> <?php endforeach; ?> </table>
コントローラから受け渡されたデータを使いループ処理にて表示を実施。
「$contacts」配列から1件ずつ取り出し、「$contact」に格納。
取り出したデータを使い「お名前」「メールアドレス」「お問い合わせ日時」をそれぞれ表示。
(3) 動きの確認
「http://localhost/contacts/contactlist」にアクセスする。
ちゃんと一覧表示される。