Home > CakePHP > CakePHPで掲示板を作ってみる#2

CakePHPで掲示板を作ってみる#2

  • Posted by: zaru
  • 2008年2月27日 21:19
  • CakePHP

前回はCakePHPの基本的な情報について解説しました。今回は、実際にDBのテーブルを作成し、モデル/コントローラを作っていきます。

掲示板のテーブル構造

今回は勉強用ということでシンプルな掲示板を作ります。

  • 入力項目は、本文/名前/メールアドレス/URI/パスワードのみ
  • レスはなし
  • パスワードを入力した場合に限り編集/削除可能
  • 投稿記事一つにユニークなURIを持たせる(Twitterのような)

テーブルの構造は以下のようにしました。

CREATE TABLE articles (
    id serial NOT NULL,
    name text,
    email text,
    uri text,
    message text NOT NULL,
    status boolean DEFAULT true NOT NULL,
    "password" text,
    created timestamp without time zone NOT NULL,
    modified timestamp without time zone NOT NULL
);
ALTER TABLE ONLY articles
    ADD CONSTRAINT articles_pkey PRIMARY KEY (id);
id
プライマリーキー
name
投稿者名
email
メールアドレス
uri
WebサイトURI
message
投稿本文
status
表示/非表示用
password
パスワード
created
投稿日
modified
編集日/削除日

モデルの作成

まずはモデルを作成します。モデルは app/models/テーブル名の単数形.php として作ります。

app/models/article.php

<?php
class Article extends AppModel {
	var $name = 'Article';
}

モデルは必ず AppModel クラスを継承して作ります。また、var $name には頭文字が大文字のモデル名を指定します。

コントローラの作成

次にコントローラを作成します。コントローラは app/controllers/コントローラ名_controller.php として作ります。コントローラ名は命名規則に従っていれば自由につけられます。今回は、articles とするのでファイル名は articles_controller.php になります。

app/controllers/articles_controller.php

<?php
class ArticlesController extends AppController {
	var $name = 'Articles';
	var $uses = array('Article');
}

モデルと同じように、AppController クラスを継承させます。また、var $name にも同じように頭文字が大文字のコントローラ名を指定します。

var $uses = array(); には使用するモデル名を指定します。Article という名前でモデルを作ったので、var $uses = array(‘Article’); とします。また、複数のモデルを指定することも出来ます。

次にコントローラにアクションの定義をします。掲示板として必要なアクションは

  • 通常表示
  • 記事単体の表示
  • 新規追加
  • 編集時のパスワード確認
  • 編集
  • 削除時のパスワード確認
  • 削除

の7つに分けられます(フレームワークを使うのはほぼ初めてなので、ここですでに間違っているかもしれないです><)。

アクションはコントローラクラスのメソッドとして登録します。前述した通り、アクションへのアクセスは /コントローラ名/アクション名 になります。アクション名を指定しなかった場合は、index アクションが呼び出されます。

まず、アクションの中身はいいとして定義だけしてみます。

app/controllers/articles_controller.php

<?php
class ArticlesController extends AppController {
	var $name = 'Articles';
	var $uses = array('Article');

	//通常表示
	function index() {
	}

	//記事単体の表示
	function messageDetail() {
	}

	//新規追加
	function add() {
	}

	//編集時のパスワード確認
	function editPassword() {
	}

	//編集
	function edit() {
	}

	//削除時のパスワード確認
	function delPassword() {
	}

	//削除
	function del() {
	}
}

実際にアクションの中身を作ります。(続きます)

Comments:0

Comment Form

Trackbacks:0

TrackBack URL for this entry
http://blog.tofu-kun.org/mt-tb.cgi/377
Listed below are links to weblogs that reference
CakePHPで掲示板を作ってみる#2 from Webプログラマー+WebデザイナーなZARU日記

Home > CakePHP > CakePHPで掲示板を作ってみる#2

Profile

zaru

Name : zaru

Webプログラマ+Webデザイナで、Webディレクタやってます。Twitterやっているので、ぜひフォローしてやってくださいませ。Twitter - zaru。また、そのほかのプロフィールについては、iddy - zaruを見てください。

Search
Feeds
Others

Return to page top