CakePHPのMVCをてきとーにまとめ。
この場合のてきとーは、適当ではなく、「いいかげん」のてきとーです。
「いい加減」の意味でもありません。実にざっくりな感じです(=ω=)
チュートリアルをすすめて、Postの追加・編集・削除まで行なえるようになりました。
DBに該当モデルのテーブルを作成した後は、
- コントローラーに欲しいアクションを追加
- アクション用ビューを作成orアクション実行URLを適当なビューに追加
すれば良いのですね!
詳しくはマニュアルのチュートリアルを参照してください。(マテ
CakePHPのModel
MVCとは何ぞや?という方は、コチラを先にご覧下さい。
CakePHPのモデルは、DBとのやり取りを行なう場所になります。
- テーブルを用意しておく(正式な英語の複数形)
- app/models/テーブル名の単数形.php に定義する
- AppModelクラスを継承
- ”var $name” に単語の頭文字が大文字のモデル名を定義
CakePHPのView
ビューは見た目ですね。
全体の見た目はレイアウトで指定し、ここでのビューはアクション(機能)ごとになります。
- app/views/コントローラ名/自由なファイル名.ctp に定義
- ファイル名をアクション名と同じにしておくと、コントローラ側で明示する必要がない
- $htmlなどを利用する
CakePHPのController
アクションを定義するところになります。
ページタイトルもコントローラーで指定します。
- app/controllers/コントローラ名_controller.php に定義
- AppControllerを継承
- ”var $name”に単語の頭文字が大文字のコントローラ名を定義
- ”var $uses”にコントローラで使用するモデルを定義
- アクションはコントローラーのメソッドとして定義
- アクションのURLは ”/コントローラ名/アクション名”
- アクション名無しでアクセスしたときは、デフォルトではindexアクションが呼ばれる
- URLでアクセスできないメソッドを作成したいときは、メソッド名の先頭に _(アンダーバー)を付ける
- →アンダーバー無しのメソッドは、すべてURLからアクセスできてしまう
- $this->set() はビューに値を渡すメソッド
- 引数は (変数名, 値)
- モデルからデータを取得するには$this->Model1->findAll()
- 引数は (検索条件, 取得フィールド, ソート条件, etc...)
- ページのタイトルは”$this->pageTitle”で定義
コントローラーが重くなりがちだなーと思ってみたり。
でも、MVCのつくりになっていると本当に作りやすいですね。
パーツで考えればいいので、集中できて好きです。
今後はデザイン後回しで #dekiben の機能をひとつずつ作りこんでいきたいと思います。
(というか誰かデザイン部分やってくださいませんか(マテ