天気が良いので外は気持ちいい。
しかし、花粉が心配。
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上でリネームする)