#12
せっかく書いた記事が消えてしまった。ショックー。
気を取り直して...
http://cakephp.jp/doc/ch06s04.html#id4803164
hasAndBelongsToManyの項に習って修正してみた。
reservesテーブルをseminars_usersに変更。
DROP TABLE IF EXISTS seminars_users; CREATE TABLE seminars_users ( user_id INT UNSIGNED, seminar_id INT UNSIGNED, created DATETIME DEFAULT NULL, modified DATETIME DEFAULT NULL, PRIMARY KEY user_id_seminar_id (user_id, seminar_id) )ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO seminars_users (user_id,seminar_id) values (1,1); INSERT INTO seminars_users (user_id,seminar_id) values (1,2);
/controllers/users_controller.php
<?php class UsersController extends AppController { var $name = 'Users'; var $uses = array('User','Seminar'); function home (){ $this->checkSession(); $this->set('me', $this->User->findById($this->Session->read('my_id'))); } } ?>
/models/user.php
<?php class User extends AppModel { var $name = 'User'; var $validate = array ( 'email' => VALID_EMAIL, ); var $hasMany = array ('Seminar'); } ?>
/models/seminar.php
<?php class Seminar extends AppModel { var $name = 'Seminar'; var $hasMany = array('User'); } ?>
標準化に従っていればとりあえず、これでOKなのでしょう。
/views/home.thtml
<div id="my_page"> <h2><a href="/users/home/"><?php echo $me['User']['name']; ?></a></h2> <div id="contents"> <div id="menu" > <ul> <li><a href="/work/yoyaku/users/home">Home</a></li> <li><a href="/work/yoyaku/users/seminar">Seminar</a></li> <li><a href="/work/yoyaku/users/diary">Diary</a></li> <li><a href="/work/yoyaku/users/edit">Settings</a></li> <li><a href="/work/yoyaku/users/logout/">Logout</a></li> </ul> </div><!-- /menu --> <h3>予約しているセミナー</h3> <table> <tr> <th> name </th> <th> sstart </th> <th> send </th> <th> snumber </th> <th> cost </th> <th> created </th> <th> modified </th> </tr> <?php foreach ($me['Seminar'] as $seminar): ?> <tr> <td> <?php echo $seminar['name']; ?> </td> <td> <?php echo $seminar['sstart']; ?> </td> <td> <?php echo $seminar['send']; ?> </td> <td> <?php echo $seminar['snumber']; ?> </td> <td> <?php echo $seminar['cost']; ?> </td> <td> <?php echo $seminar['created']; ?> </td> <td> <?php echo $seminar['modified']; ?> </td> </tr> <?php endforeach; ?> <table> </div> <h3>My Profile</h3> <div id="my_profile" > <p><?= $me['User']['profile']; ?></p> </div> </div> </div>
今日はここまで。
明日は、セミナー一覧の実装をしたいと思います。
簡単だと思うので、ログアウトも一緒に。