本記事では、CakePHPによるデータベースから、モデルを作成する内容となっています。
既存のデータベースに、CakePHPで利用する場合には、本記事の内容が参考になると思います。
ぜひ、ご参考にして下さい。
生成可能となっているモデル一覧の表示
下記の bake コマンドを実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[hogehoge@sv7108 app]$ ./bin/cake bake model Welcome to CakePHP v3.1.14 Console --------------------------------------------------------------- App : src Path: /home/hogehoge/example.com/public_html/sandbox/app/src/ PHP : 5.4.16 --------------------------------------------------------------- Choose a model to bake from the following: - Notes - Questions - SikakuKinds - Users |
モデルの生成
下記の bake コマンドを実行します。この例では、既存のNotesテーブルのモデルを生成しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
[hogehoge@sv7108 app]$ bin/cake bake model Notes Welcome to CakePHP v3.1.14 Console --------------------------------------------------------------- App : src Path: /home/hogehoge/example.com/public_html/sandbox/app/src/ PHP : 5.4.16 --------------------------------------------------------------- One moment while associations are detected. Baking table class for Notes... Creating file /home/hogehoge/example.com/public_html/sandbox/app/src/Model/Table/NotesTable.php Wrote `/home/hogehoge/example.com/public_html/sandbox/app/src/Model/Table/NotesTable.php` Baking entity class for Note... Creating file /home/hogehoge/example.com/public_html/sandbox/app/src/Model/Entity/Note.php Wrote `/home/hogehoge/example.com/public_html/sandbox/app/src/Model/Entity/Note.php` Baking test fixture for Notes... Creating file /home/hogehoge/example.com/public_html/sandbox/app/tests/Fixture/NotesFixture.php Wrote `/home/hogehoge/example.com/public_html/sandbox/app/tests/Fixture/NotesFixture.php` Bake is detecting possible fixtures... Baking test case for App\Model\Table\NotesTable ... Creating file /home/hogehoge/example.com/public_html/sandbox/app/tests/TestCase/Model/Table/NotesTableTest.php Wrote `/home/hogehoge/example.com/public_html/sandbox/app/tests/TestCase/Model/Table/NotesTableTest.php` [hogehoge@sv7108 app]$ |
コントローラーの生成
下記の bake コマンドを実行します。この例では、既存のNotesテーブルに対応するコントローラーを生成しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
Welcome to CakePHP v3.1.14 Console --------------------------------------------------------------- App : src Path: /home/hogehoge/example.com/public_html/sandbox/app/src/ PHP : 5.4.16 --------------------------------------------------------------- Baking controller class for Notes... Creating file /home/hogehoge/example.com/public_html/sandbox/app/src/Controller/NotesController.php Wrote `/home/hogehoge/example.com/public_html/sandbox/app/src/Controller/NotesController.php` Bake is detecting possible fixtures... Baking test case for App\Controller\NotesController ... Creating file /home/hogehoge/example.com/public_html/sandbox/app/tests/TestCase/Controller/NotesControllerTest.php Wrote `/home/hogehoge/example.com/public_html/sandbox/app/tests/TestCase/Controller/NotesControllerTest.php` [hogehoge@sv7108 app]$ |
テンプレートの生成
下記の bake コマンドを実行します。この例では、既存のNotesテーブルに対応するテンプレートを生成しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
[hogehoge@sv7108 app]$ ./bin/cake bake template Notes Welcome to CakePHP v3.1.14 Console --------------------------------------------------------------- App : src Path: /home/hogehoge/example.com/public_html/sandbox/app/src/ PHP : 5.4.16 --------------------------------------------------------------- Baking `index` view template file... Creating file /home/hogehoge/example.com/public_html/sandbox/app/src/Template/Notes/index.ctp Wrote `/home/hogehoge/example.com/public_html/sandbox/app/src/Template/Notes/index.ctp` Baking `view` view template file... Creating file /home/hogehoge/example.com/public_html/sandbox/app/src/Template/Notes/view.ctp Wrote `/home/hogehoge/example.com/public_html/sandbox/app/src/Template/Notes/view.ctp` Baking `add` view template file... Creating file /home/hogehoge/example.com/public_html/sandbox/app/src/Template/Notes/add.ctp Wrote `/home/hogehoge/example.com/public_html/sandbox/app/src/Template/Notes/add.ctp` Baking `edit` view template file... Creating file /home/hogehoge/example.com/public_html/sandbox/app/src/Template/Notes/edit.ctp Wrote `/home/hogehoge/example.com/public_html/sandbox/app/src/Template/Notes/edit.ctp` [hogehoge@sv7108 app]$ |