差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| php:fuelphp:oil_generate_model [2012/11/24 17:19] – [生成済みテーブルを強制上書きする方法] ともやん | 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> |
| ===== 生成済みテーブルを強制上書きする方法 ===== | ===== 生成済みテーブルを強制上書きする方法 ===== | ||
| 行 198: | 行 198: | ||
| $ oil g model tablename column1: | $ oil g model tablename column1: | ||
| </ | </ | ||
| + | |||
| + | ===== テーブル名を複数形で扱いたくない場合 ===== | ||
| + | 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:: | ||
| + | } | ||
| + | } | ||
| + | </ | ||