「誕生日つぶやく」から「リマインダー」に変更

誕生日つぶやくものを作ろうと思ったけど、
色々あってリマインダーを作成することにしました!


テーブルは前回にクラス図で抽出した
userテーブルと、reminderテーブル作成します。

・remindersテーブル
CREATE TABLE IF NOT EXISTS `reminders` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`userid` int(5) NOT NULL,
`memo` varchar(110) NOT NULL,
`tweettime` datetime NOT NULL,
`option` int(5) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;



・usersテーブル
CREATE TABLE IF NOT EXISTS `users` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`username` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;



cakephpOAuth認証http://code.42dh.com/oauth/
の 「OAuth consumer class」 をダウンロードしてvendersフォルダにいれる


コントローラーをuserとreminderと分けようと思います


・users_controller.php
'OAuth'.DS.'oauth_consumer.php'));
App::import('Vendor', 'oauth', array('file' => 'OAuth'.DS.'OAuth.php'));


class UsersController extends AppController {

var $name = 'Users';


//認証画面へ飛ぶ
function login() {
$consumer = $this->createConsumer();
$requestToken = $consumer->getRequestToken('http://twitter.com/oauth/request_token', '飛んでほしいURL(この場合はfunction check)');

$this->Session->write('twitter_request_token', $requestToken);
$this->redirect('http://twitter.com/oauth/authorize?oauth_token=' . $requestToken->key);
}

private function createConsumer() {
return new OAuth_Consumer('自分の', '自分の');
}



  //IDがあるかどうかチェックする(なければuserテーブルに登録)
public function check() {

$user = new User();
$requestToken = $this->Session->read('twitter_request_token');
$consumer = $this->createConsumer();

$accessToken = $consumer->getAccessToken('http://twitter.com/oauth/access_token', $requestToken);
$data = $consumer->getFullResponse();

$name = $user->explode($data);

if(!$this->User->find(array("User.username" => $name))){
$this->data['username']=$name;
$this->User->save($this->data);
}

$data = $this->User->find(array("User.username" => $name));
$this->Session->write('username', $data['User']);

    //useridとusernameを持ってindexにリダイレクト 
$this->redirect(array('controller'=>'reminders','action' => 'index'));
}
}


・reminders_controller.php

function index() {
$this->Reminder->recursive = 0;

//user_controllerでセッションに書き込んだidを使って、where句で絞る
$user = $this->Session->read('username');
$this->set('reminders', $this->paginate(array("userid" => $user['id'])));
}