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で独自のコントローラーを継承する方法

CakePHPで独自に作ったコントローラーを継承する方法を調べました。 自分はJavaをよく使っていたというのは変かもしれませんがコントローラーの継承というのはそれほど違和感はないのですがCakePH …

CakePHPでビューからコンポーネントを呼び出す方法

CakePHPで各ビューで特定の処理をコンポーネントでまとめて呼び出したい場合があると思います。 単純に考えるとビューにコンポーネントをセットすればよいと思いますが、ヘルパーからコンポーネントを呼び出 …

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

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

CakePHP2.4系のインストールと設定方法

今までずーっとJava/サーブレット関連の開発をしていたのですが世の中の流れか不明ですが、今回PHPの開発をすることになりました。 少し触ったことがある程度で、フレームワークとかは何も使っていない素の …

no image

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

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