差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
php:fuelphp:oil_generate_model [2012/11/24 17:18] – [テーブル名に'_'(アンダースコア) を多用しなければならない場合] ともやん | php:fuelphp:oil_generate_model [2024/03/27 10:51] (現在) – [create_at、update_at を timestamp 型にする方法] ともやん | ||
---|---|---|---|
行 5: | 行 5: | ||
< | < | ||
$ cd fuelapp | $ cd fuelapp | ||
- | $ oil generate model tablename | + | $ oil generate model tablename |
</ | </ | ||
または cli 版の php を明示して実行 | または cli 版の php を明示して実行 | ||
行 30: | 行 30: | ||
\\ | \\ | ||
fuelapp/ | fuelapp/ | ||
- | <sxh php collapse: | + | <code php collapse: |
<?php | <?php | ||
行 56: | 行 56: | ||
); | ); | ||
} | } | ||
- | </sxh> | + | </code> |
fuelapp/ | fuelapp/ | ||
- | <sxh php collapse: | + | <code php collapse: |
<?php | <?php | ||
行 84: | 行 84: | ||
} | } | ||
} | } | ||
- | </sxh> | + | </code> |
===== スキーマの生成 ===== | ===== スキーマの生成 ===== | ||
行 97: | 行 97: | ||
処理済みの migration は以下のように記録される。\\ | 処理済みの migration は以下のように記録される。\\ | ||
fuelapp/ | fuelapp/ | ||
- | <sxh php collapse: | + | <code php collapse: |
<?php | <?php | ||
return array( | return array( | ||
行 119: | 行 119: | ||
' | ' | ||
); | ); | ||
- | </sxh> | + | </code> |
mysql の migration テーブルにも記録される。< | mysql の migration テーブルにも記録される。< | ||
mysql> use fuel_db; | mysql> use fuel_db; | ||
行 138: | 行 138: | ||
</ | </ | ||
fuelapp/ | fuelapp/ | ||
- | <sxh php collapse: | + | <code php collapse: |
<?php | <?php | ||
行 164: | 行 164: | ||
); | ); | ||
} | } | ||
- | </sxh> | + | </code> |
fuelapp/ | fuelapp/ | ||
- | <sxh php collapse: | + | <code php collapse: |
<?php | <?php | ||
行 191: | 行 191: | ||
\DBUtil:: | \DBUtil:: | ||
} | } | ||
- | }</sxh> | + | }</code> |
===== 生成済みテーブルを強制上書きする方法 ===== | ===== 生成済みテーブルを強制上書きする方法 ===== | ||
既に生成済みのテーブルを強制的に上書き生成するには -f または --force を指定する。 | 既に生成済みのテーブルを強制的に上書き生成するには -f または --force を指定する。 | ||
< | < | ||
- | $ oil g model tablename | + | $ oil g model tablename |
</ | </ | ||
+ | |||
+ | ===== テーブル名を複数形で扱いたくない場合 ===== | ||
+ | tablename という model を生成すると以下のようになります。 | ||
+ | ^ モデルクラスファイル名(単数形) | ||
+ | ^ モデルクラス名(単数形) | ||
+ | ^ マイグレーションファイル名(複数形) | ||
+ | ^ マイグレーションクラス名(複数形) | ||
+ | ^ 物理テーブル名(複数形) | ||
+ | Fuel の ORM は、特に指定がないとテーブル名を複数形で扱うので、もともと存在しているテーブルを扱う場合や設計の都合で複数形にできない場合は、手修正する必要がある。 | ||
+ | - マイグレーションファイル名を修正する。< | ||
+ | 001_create_tablenames.php -> 001_create_tablename.php | ||
+ | </ | ||
+ | - マイグレーションクラス、物理テーブル名を修正する。\\ fuelapp/ | ||
+ | <?php | ||
+ | |||
+ | namespace Fuel\Migrations; | ||
+ | |||
+ | class Create_tablename | ||
+ | { | ||
+ | public function up() | ||
+ | { | ||
+ | \DBUtil:: | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | |||
+ | ), array(' | ||
+ | } | ||
+ | |||
+ | public function down() | ||
+ | { | ||
+ | \DBUtil:: | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | - モデルクラスに以下を記述する。\\ fuelapp/ | ||
+ | <?php | ||
+ | |||
+ | class Model_Tablename extends \Orm\Model | ||
+ | { | ||
+ | public static $_table_name = " | ||
+ | | ||
+ | protected static $_properties = array( | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ); | ||
+ | |||
+ | protected static $_observers = array( | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ), | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ), | ||
+ | ); | ||
+ | } | ||
+ | </ | ||
+ | ※Fuel は Inflector:: | ||
===== テーブル名に' | ===== テーブル名に' | ||
行 220: | 行 289: | ||
オートロードできるようにするには、以下のファイルを記述する。\\ | オートロードできるようにするには、以下のファイルを記述する。\\ | ||
fuelapp/ | fuelapp/ | ||
- | <sxh php collapse: | + | <code php collapse: |
<?php | <?php | ||
行 252: | 行 321: | ||
// Initialize the framework with the config file. | // Initialize the framework with the config file. | ||
Fuel:: | Fuel:: | ||
- | </sxh> | + | </code> |
+ | |||
+ | ===== Observer を無効化したい場合 ===== | ||
+ | $_observers をクリアする関数を定義してそれを呼び出す。 | ||
+ | <code php collapse: | ||
+ | <?php | ||
+ | |||
+ | class Model_Tablename extends \Orm\Model | ||
+ | { | ||
+ | protected static $_properties = array( | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ); | ||
+ | |||
+ | protected static $_observers = array( | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ), | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ), | ||
+ | ); | ||
+ | |||
+ | public static function clear_observers() | ||
+ | { | ||
+ | static:: | ||
+ | } | ||
+ | } | ||
+ | </ |