モデルとデータベース (2/5)
作成:2015-09-12 10:37
更新:2015-09-12 10:37
更新:2015-09-12 10:37
■テーブルを作成する
CakePHP 3でデータベースを利用する場合、最初にやるべきことは、「データベースにテーブルを用意する」ということです。
ここでは、「persons」というテーブルを作成してみることにしましょう。これは以下のようなフィールドを用意しています。
id――プライマリキーとなる整数のフィールドです。
name――名前を保管するテキストのフィールドです。
age――年齢を保管する整数のフィールドです。
mail――メールアドレスを保管するテキストのフィールドです。
ごく単純なものですね。注意すべきは、テーブルの名前です。テーブル名は、「persons」というように、複数形になっています。このように複数形で名前をつけておくのが基本になります。
では、このテーブルをSQLiteで作成しましょう。実行するクエリーは以下のようになるでしょう。
なお、「SQLiteをコマンドラインから操作するなんて、どうすればいいのかわからない!」という人のためにGUIでSQLiteを操作する「SQLite Browser」を紹介しておきましょう。
これは、SQLiteのデータベースファイルを開き、そこにテーブルを作成したり、テーブルにレコードを追加したりできるツールです。起動して「Open Browser」ボタンをクリックし、データベースファイルを開けば、その内容が表示され操作できるようになります。「Create Table」ボタンを押し、フィールドを追加して設定していくだけでテーブルの定義が作れます。
(※下図は、SQLite Borwserのテーブル設計画面。)
では、テーブルができたら、モデルを作成しましょう。CakePHP 3では、テーブルをもとにモデルのソースコードを自動生成する機能が用意されています。これを使えば、簡単にモデルを作ることができます。
コマンドプロンプトまたはターミナルを起動し、プロジェクトのフォルダ(ここでは「samplecake」フォルダ)にカレントディレクトリを移動して下さい。そして、以下のように実行をします。
これで、モデルのファイルが自動生成されます。他は何も作業する必要はなし。実に簡単ですね!
ここでは、「persons」というテーブルを作成してみることにしましょう。これは以下のようなフィールドを用意しています。
id――プライマリキーとなる整数のフィールドです。
name――名前を保管するテキストのフィールドです。
age――年齢を保管する整数のフィールドです。
mail――メールアドレスを保管するテキストのフィールドです。
ごく単純なものですね。注意すべきは、テーブルの名前です。テーブル名は、「persons」というように、複数形になっています。このように複数形で名前をつけておくのが基本になります。
では、このテーブルをSQLiteで作成しましょう。実行するクエリーは以下のようになるでしょう。
CREATE TABLE `persons` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`name` TEXT NOT NULL,
`age` INTEGER,
`mail` TEXT
);
なお、「SQLiteをコマンドラインから操作するなんて、どうすればいいのかわからない!」という人のためにGUIでSQLiteを操作する「SQLite Browser」を紹介しておきましょう。
http://sqlitebrowser.org/
これは、SQLiteのデータベースファイルを開き、そこにテーブルを作成したり、テーブルにレコードを追加したりできるツールです。起動して「Open Browser」ボタンをクリックし、データベースファイルを開けば、その内容が表示され操作できるようになります。「Create Table」ボタンを押し、フィールドを追加して設定していくだけでテーブルの定義が作れます。
(※下図は、SQLite Borwserのテーブル設計画面。)
■bakeを利用する
では、テーブルができたら、モデルを作成しましょう。CakePHP 3では、テーブルをもとにモデルのソースコードを自動生成する機能が用意されています。これを使えば、簡単にモデルを作ることができます。
コマンドプロンプトまたはターミナルを起動し、プロジェクトのフォルダ(ここでは「samplecake」フォルダ)にカレントディレクトリを移動して下さい。そして、以下のように実行をします。
bin\cake bake model persons
これで、モデルのファイルが自動生成されます。他は何も作業する必要はなし。実に簡単ですね!
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
・テーブルの作成 CREATE TABLE `persons` ( `id` INTEGER PRIMARY KEY AUTOINCREMENT, `name` TEXT NOT NULL, `age` INTEGER, `mail` TEXT );
※関連コンテンツ
「初心者のためのCakePHP3 プログラミング入門」に戻る