PHP

CakePHPで簡単なモデルを作る

投稿日:2014/02/26 更新日:

前回、簡単なビューとコントローラーを作ったので今回はモデルを作ってみたいと思います。
テーブル名と作成するモデルファイル名はCakePHPの命名規則がありますので、基本的にはそのルールにしたがって作成していきます。
まずは、テーブルの作成を行います。

テーブルの作成

今回テスト用にCakePHPの認証ドキュメント内で使われているusersテーブルを使いたいと思います。
シンプルな認証と承認のアプリケーション

CREATE TABLE users (
    id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50),
    password VARCHAR(50),
    role VARCHAR(20),
    created DATETIME DEFAULT NULL,
    modified DATETIME DEFAULT NULL
);

XAMPPをお使いのかたはphpMyAdmin等でSQLを実行してください。

動作確認用に2件ほどINSERTしておきます。


INSERT INTO users (
username,
password,
role,
created
) VALUES('admin', 'admin', 'admin', NOW());
INSERT INTO users (
username,
password,
role,
created
) VALUES('user', 'user', 'user', NOW());

モデルの作成

次にモデルを作成していきます。
最初に作成するモデルのファイル名は
User.php
となります。テーブル名はusersと複数系ですが対応するモデルのファイル名はUserと単数形になることに注意が必要です。
cake/app/Model/User.php
として作成します。

<?php
class User extends AppModel {
}

コントローラーの作成

画面上から操作できるようにコントローラーを作成します。
cake/app/Controller/UsersController.php
として作成します。モデルとは違い、コントローラーのファイル名はUsersと複数系になることに注意。

<?php
class UsersController extends AppController {
	public function index() {
		$this->set('User', $this->User->find('all'));
	}
}

ビューの作成

データベースの内容を表示するビューを作成します。
cake/app/View/Users/index.ctp
として作成します。

<?php debug($User); ?>

レコードの内容をデバッグメソッドを使って表示します。

動作確認

この状態でhttp://localhost/cake/users/にアクセスすると以下の様な画面が表示されます。
result1
パスワードフィールドは自動的に****でマスクされるみたいです。

結びに

findメソッドについては、もちろん検索条件などを指定することができて簡単なSQL文であればSQL文を書くことなくデータを取得できるのは非常に簡単ですね。
しかしながら複雑なSQL文、例えばリレーションシップを設定したりするものに関してはSQL文で書いたほうがよいのか迷う部分ではあります。
この辺りは作成するアプリケーションを勘定して判断するのがよいのではないかと思います。

-PHP

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

CakePHPでコントローラーの呼び出しURLを変更する

CakePHPでは基本的にURLとコントローラーは一致します。 例えば /users/index というURLの場合、呼び出されるコントローラーは UsersController が呼び出されます。 …

Laravelでテーブルの主キーに文字列型を使う場合のモデルの定義

ポストタイトルの通りなんですけどLaravelでテーブルの主キーに文字列型を使う場合ですがModel#findで検索すると結果は帰ってくるのですが主キー項目の値を表示されると0と表示されてしまいました …

no image

Windows7でXAMPPを使う <設定編>

前回、インストールを行ったので今回設定をしてみたいと思います。 前提条件として、外部には公開しないので、ガチガチに設定は行いませんが必要最低限の設定を行いたいと思います。 といっても、ほとんど設定する …

CakePHPで簡単なコントローラーとビューの作成

先日こちらの記事でCakePHPのインストールを行いました。 今回はとりあえず最初の一歩としてコントローラーとビューを使ってみたいと思います。 最終的な目標はすごい簡単で/cake/hello/にアク …

no image

Windows7でXAMPPを使う <インストール編>

Windows7を使う機会があったので、PHPを実行できるように環境を整えてみました。 環境 Windows7 Professional なんで、Windows8ではなくWindows7ということは聞 …