MacでCakePHPのメモ
- 2008.02.13
- PHP
CakePHPガイドブックを見ながらの作業メモ。
1. customer.phpとorder_record.phpを作る。(モデル)
2. customer_controller.phpとorder_record_controller.phpを作る。(コントローラ)
3. index.thtml, view.thtml, add.thtml, edit.thtml を作る。(ビュー)
■scriptsディレクトリへ移動する
$ cd Sites/cake/cake/scripts
■bake.phpを実行する
$ php bake.php ___ __ _ _ ___ __ _ _ __ __ __ _ _ ___ | |__| |_/ |__ |__] |__| |__] |__] |__| |_/ |__ |___ | | | \_ |___ | | | | |__] | | | \_ |___ --------------------------------------------------------------- Bake -app in /Users/FinalCut/Sites/cake/app (y/n) [y] > Baking... --------------------------------------------------------------- Name: app Path: /Users/FinalCut/Sites/cake/app --------------------------------------------------------------- [M]odel [C]ontroller [V]iew What would you like to Bake? (M/V/C) >
■モデルを生成する
Customerテーブルを選択する。
What would you like to Bake? (M/V/C) > M --------------------------------------------------------------- Model Bake: --------------------------------------------------------------- Possible Models based on your current database: 1. Customer 2. OrderRecord Enter a number from the list above, or type in the name of another model. > 1 Would you like to supply validation criteria for the fields in your model? (y/n) [y] >
idフィールドのバリデーションを設定する。
Name: id Type: integer --------------------------------------------------------------- Please select one of the following validation options: --------------------------------------------------------------- 1- VALID_NOT_EMPTY 2- VALID_EMAIL 3- VALID_NUMBER 4- VALID_YEAR 5- Do not do any validation on this field. ... or enter in a valid regex validation string. [5] >
5のバリデーション無しを選択する。
続けて、nameフィールドのバリデーションを設定する。
Name: name Type: string --------------------------------------------------------------- Please select one of the following validation options: --------------------------------------------------------------- 1- VALID_NOT_EMPTY 2- VALID_EMAIL 3- VALID_NUMBER 4- VALID_YEAR 5- Do not do any validation on this field. ... or enter in a valid regex validation string. [1] >
1の「NOT_EMPTY」を設定する。
続けて、全部のフィールドを適当に設定する。
hasMany リレーションを設定する。
--------------------------------------------------------------- Please confirm the following associations: --------------------------------------------------------------- Customer hasOne OrderRecord? (y/n) [y] > n Customer hasMany OrderRecord? (y/n) [y] > y Would you like to define some additional model associations? (y/n) [y] > n --------------------------------------------------------------- The following model will be created: --------------------------------------------------------------- Model Name: Customer DB Connection: default DB Table: customers Validation: Array ( [name] => VALID_NOT_EMPTY [tel] => VALID_NOT_EMPTY ) Associations: Customer hasMany OrderRecord --------------------------------------------------------------- Look okay? (y/n) [y] > y Creating file /Users/FinalCut/Sites/cake/app/models/customer.php Wrote/Users/FinalCut/Sites/cake/app/models/customer.php Cake test suite not installed. Do you want to bake unit test files anyway? (y/n) [y] > n
以上で、app/models/customer.phpファイルが作成される。
もう一度、php bake.phpを実行してorder_record.phpファイルを作成する。
アソシエーションは、belongsToを選ぶ。
Would you like to define model associations (hasMany, hasOne, belongsTo, etc.)? (y/n) [y] > One moment while I try to detect any associations... Done. --------------------------------------------------------------- Please confirm the following associations: --------------------------------------------------------------- OrderRecord belongsTo Customer? (y/n) [y] > y Would you like to define some additional model associations? (y/n) [y] > n
■コントローラーを作成する
php bake.phpを再度実行してモデルを作る。
--------------------------------------------------------------- Name: app Path: /Users/FinalCut/Sites/cake/app --------------------------------------------------------------- [M]odel [C]ontroller [V]iew What would you like to Bake? (M/V/C) > C --------------------------------------------------------------- Controller Bake: --------------------------------------------------------------- Possible Controllers based on your current database: 1. Customers 2. OrderRecords Enter a number from the list above, or type in the name of another controller. > 1 Would you like bake to build your controller interactively? Warning: Choosing no will overwrite controller if it exist. (y/n) [y] > n Would you like to include some basic class methods (index(), add(), view(), edit())? (y/n) [y] > y Would you like to create the methods for admin routing? (y/n) [y] > n Creating file /Users/FinalCut/Sites/cake/app/controllers/customers_controller.php Wrote/Users/FinalCut/Sites/cake/app/controllers/customers_controller.php Cake test suite not installed. Do you want to bake unit test files anyway? (y/n) [y] > n
以上で、app/controllers/customers_controller.phpが作成される。
続けて、order_records_controller.phpを作る。
■ビューを作成する
現在のバージョンcake_1.1.19.6305だとエラーが発生したので、古いバージョンcake_1.1.18.5850をダウンロードした。(ナイトリーのビルドもダメだったので)
http://cakeforge.org/frs/download.php/549/cake_1.1.18.5850.tar.bz2
コピーするときはこんな感じで。 バックアップしてから行うこと。
$ cp -prf cake_1.1.18.5850/* cake/
コピーした後は、バックアップから.htaccessを戻してmod_rewriteが有効になるようにする。
cake/.htaccess
cake/app/.htaccess
cake/app/webroot/.htaccess
■ブラウザでアクセスする
customersにアクセスして、レコードを追加する。
http://localhost/~自分のログイン名/cake/customers/
-
前の記事
MacでCakePHPの開発環境を整える 2008.02.08
-
次の記事
cake_1.1.19.6305でエラー Warning bake.php on line 910 2008.02.13