第4回ではCakePHPでの開発環境を構築しました。今回からアプリケーション部分の開発にとりかかります。
開発するのはToDo管理アプリケーションです。今回は以下の作業を行います。
- DBの設計と作成
- コントローラの作成
- モデルの作成
- ビューの作成
この作業で実装される機能は以下になります。
- タスク一覧の表示
このアプリケーション開発の前提として,
DBの設計と作成
まずはCakePHPに慣れるためのサンプルアプリケーションですので,
データベース名はtodo,
CREATE DATABASE todo; use todo; SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; CREATE TABLE `tasks` ( `id` int(11) unsigned NOT NULL auto_increment, `content` text NOT NULL, `status` enum('yet','done') NOT NULL default 'yet', `created` datetime NOT NULL, `modified` datetime NOT NULL, PRIMARY KEY (`id`), KEY `status` (`status`), KEY `created` (`created`), KEY `modified` (`modified`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; INSERT INTO `tasks` (`id`, `content`, `status`, `created`, `modified`) VALUES (1, 'プログラマーズリファレンスガイドを一通り読む', 'done', '2007-08-20 00:00:00', '2007-08-21 01:00:00'), (2, 'ブログチュートリアルを行う', 'yet', '2007-08-21 02:00:00', '2007-08-21 02:00:00'), (3, 'CakePHP情報サイトをRSSリーダーに登録する', 'yet', '2007-08-21 05:00:00', '2007-08-21 05:00:00');
データベース名に合わせてapp/
リスト1 app/
<?php
class DATABASE_CONFIG {
var $default = array(
'driver' => 'mysql',
'connect' => 'mysql_connect',
'host' => 'localhost',
'login' => 'ここにDBのユーザー名',
'password' => 'ここにDBのパスワード',
'database' => 'todo',
'prefix' => '',
);
}
レンタルサーバなどでdb名が固定の場合は,
tasksテーブルの解説
テーブル名は複数形
CakePHPの規約ではテーブル名は複数形です。この規約は絶対ではありませんが,
複数形は単純に
複数形がない単語は例外的にそのままになります。たとえば
プライマリキーはid
プライマリキーはidです。CakePHPの規約ではプライマリキーのフィールド名はidなので,
タスク内容とステータス
タスク内容はcontentフィールドに入ります。タスクの状態は
作成日はcreated, 更新日はmodified
タスクを作成した日はcreatedフィールドにdatetime型で入ります。更新日はmodifiedフィールドで,