天気が良いので外は気持ちいい。
しかし、花粉が心配。
1時間目
・先週の復習
criteria
・symfony、「モデルによるCRUD」から
Webアプリでは、DB操作で下記4つの機能で実現できます。
Create
Read
Update
Delete
・モデルでの書き方
memberの場合、IDとcreated_atは記述しない。モデルで自動的にセットする。
・action.class.phpで記述をして、アクセスし、データがinsertされることを確認する。
・commentテーブルでも同様の記述を行い、データがinsertされることを確認する。
2時間目
・insert,delete
・オブジェクトを使ってDBを操作、ORマッピング
Web開発の現場では、SQLは使わずORマッピングで開発しています。
・以上の使い方に慣れる
member_addモジュールを作成。
$ symfony init-module front member_add
insert,confirm,resultアクション作成。
inputSuccess.php
confirmSuccess.php
resultSuccess.php
3時間目
・午前の答え合わせ
class member_addActions extends sfActions
{
public function executeInput()
{
return sfView::SUCCESS;
}
public function executeConfirm()
{
// パラメータで受け取る
$this->nickname = $this->getRequestParameter('nickname') ;
$this->mailaddress = $this->getRequestParameter('mailaddress') ;
return sfView::SUCCESS;
}
public function executeResult()
{
// パラメータで受け取る
$nickname = $this->getRequestParameter('nickname') ;
$mailaddress = $this->getRequestParameter('mailaddress') ;
// symfonyでモデルの書き方(CRUD:insert)
// まず、空の行を作る
$member = new Member();
// データをセットする
$member->setNickname($nickname) ;
$member->setMailaddress($mailaddress);
// 保存する
$member->save();
return sfView::SUCCESS;
}
}
・今やっているところは、アプリケーション名、モジュール名(アクション名)の関係がわかるようになって下さい。
・会員一覧ページを作る(app:member_list/index)
一覧表はfrontモジュールのincexアクションと同じことをやっているので参考にして下さい。
$ symfony init-module front member_list
・編集ボタンで編集できるようにする。(app:member_edit)
$ symfony init-module front member_edit
indexSuccess.php
・編集用アクションinput,confirm,resultを作成する。
inputSuccess.php
confirmSuccess.php
resultSuccess.php
4時間目
・答え合わせ
5時間目
・答え合わせ、member_list/indexSuccess.php
6時間目
・答え合わせ、member_edit/inputSuccess.php,confirmSuccess.php,resultSuccess.php
public function executeInput()
{
$id = $this->getRequestParameter('id') ;
$this->member = MemberPeer::retrieveByPK($id) ;
return sfView::SUCCESS;
}
public function executeConfirm()
{
$this->id = $this->getRequestParameter('id') ;
$this->nickname = $this->getRequestParameter('nickname') ;
$this->mailaddress = $this->getRequestParameter('mailaddress') ;
return sfView::SUCCESS;
}
public function executeResult()
{
// パラメータで受け取る
$id = $this->getRequestParameter('id') ;
$nickname = $this->getRequestParameter('nickname') ;
$mailaddress = $this->getRequestParameter('mailaddress') ;
// 更新したい行(オブジェクト)をまず取得する
$member = MemberPeer::retrieveByPK($id) ;
$member->setNickname($nickname) ;
$member->setMailaddress($mailaddress);
// 保存する
$member->save();
return sfView::SUCCESS;
}
・一覧画面に削除リンクを付け、削除処理を追加する。
モジュールはmember_list
public function executeDelete()
{
// DBアクセス
$id = $this->getRequestParameter('id') ;
$member = MemberPeer::retrieveByPK($id) ;
// データを削除する(一度削除するともうないので判断を入れる)
if ($member) {
$member->delete();
}
return sfView::SUCCESS;
}
・明日はdeleteを解説
・今日やったところであやふやな部分がある人はモジュールをlinux上でリネームして
復習をして下さい。
(eclipseでリネームすると文字化けすることがあるのでlinux上でリネームする)