参考にさせて頂いたページ
モデルとデータベース(1/5):初心者のためのCakePHP2.0 プログラミング入門
ホストマシン環境
ゲストマシン環境
- CentOS release 6.6 (Final)
- cakephp2.5.6
- mysql Ver 14.14 Distrib 5.6.21, for Linux (x86_64) using EditLine wrapper
- Apache/2.2.15 (Unix)
データベースを作成する
参考ページのサンプルをそのままコピペすると駄目なので
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
という感じで複数形の名前にするって感じなのかな?
まだわからないけど
一旦上記のような感じで頭を整理してみた。
今後学習していくうちに間違いに気付くかもしれないけど、一旦こんな感じで。
今回はここまで。
はー。データベースまで動いた。便利。