MacでCakePHPのメモ
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/
- 3842 reads