Motomichi Works Blog

モトミチワークスブログです。その日学習したことについて書いている日記みたいなものです。

vagrantその19-25 cakephp入門をやってみる(モデルとデータベースその5)モデルとデータベース基礎についてのまとめ

参考にさせて頂いたページ

モデルとデータベース(1/5):初心者のためのCakePHP2.0 プログラミング入門

ホストマシン環境

ゲストマシン環境

データベースを作成する

参考ページのサンプルをそのままコピペすると駄目なので

CREATE DATABASE MySampleData DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

とした。

MySampleData

データベースが作成された。

テーブルを作成する

cakephpのバージョンが違うせいなのか、参考ページのサンプルをそのままコピペすると都合が悪いので、

CREATE TABLE `my_sample_data` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `mail` varchar(255) NOT NULL,
  `tel` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM;

とした。

テーブル名についてmy_sample_datasではなくmy_sample_dataとした。

database.phpを編集する

私が過去に書いた

vagrantその18 cakephpの初期設定をしてみる - MOTOMICHI WORKS BLOG

を参考にするのも良いけど、接続するデータベース名は今回はMySampleDataなので変更する。

databese.phpで設定する項目の詳細は参考ページ

モデルとデータベース(3/5):初心者のためのCakePHP2.0 プログラミング入門

を見ると良いと思う。

ModelファイルとModelクラスの作成

app/Modelディレクトリの中にMySampleData.phpを作成する。

MySampleData.phpの記述内容は参考ページにならって以下の通り。

<?php
App::uses('AppModel', 'Model');

class MySampleData extends AppModel {

}

参考ページにはなんか色々書いてあるんだけど、cakephpのバージョンが違うせいかもしれない。

MySampleDatasController.phpを作成する

app/ControllerディレクトリにMySampleDatasController.phpを作成する。

cakephpの規約として、コントローラーファイル名は複数形だそうなので、MySampleDatasController.phpというファイル名で。

その記述内容は、アクションは特に書かずに以下の通り。

<?php
App::uses('AppController', 'Controller');

class MySampleDatasController extends AppController {
  public $scaffold;
}

ファイル名、クラス名、データベース名、テーブル名などの要点

要点としては

  • database.phpに書くデータベース名はMySampleData
  • Modelのファイル名はMySampleData.php
  • Modelファイルの中に書くクラス名はMySampleData
  • テーブル名はmy_sample_data

という感じで、単数形の名前になった。
scaffoldではモデルファイル名=モデルクラス名=参照したいテーブル名なのかな?

  • Controllerのファイル名はcakephpの規約によって、MySampleDatasController.php
  • MySampleDatasController.phpの中に書くクラス名もMySampleDatasController

という感じで複数形の名前にするって感じなのかな?

まだわからないけど

一旦上記のような感じで頭を整理してみた。

今後学習していくうちに間違いに気付くかもしれないけど、一旦こんな感じで。

今回はここまで。

はー。データベースまで動いた。便利。