#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>

今日はここまで。

明日は、セミナー一覧の実装をしたいと思います。
簡単だと思うので、ログアウトも一緒に。