LoginSignup
3
3

More than 5 years have passed since last update.

fuelPHPのお勉強

Posted at

メモしたいことをメモする

ORMの意義とかまだわかってないなと感じつつ、設計思想とともにお勉強が進んでおります。おもしろい。

他コントローラーの呼び出しについて

モデリング的にはNGかもだけど、、とりあえずのメモ。

最初に試した。

$variation = Request::forge('hoge/create')->execute(array('param_hmvc'=>$param_hmvc))->response();

これだとaction以外もいけるな。beforeでインスタンス化しとく。
インスタンス化したときにbeforeは実行されていないオブジェクトなので注意。

$this -> Controller_Hoge = new Controller_Hoge($this -> request);
$variation = $this -> Controller_Hoge -> create($param_hmvc);

関連

$_has_one → 1対1
$_has_many → 1対多
$_belongs_to → 多対1、1対1($_has_one、$_has_manyの反対側)
$_many_many → 多対多

http://blog.lunarians.net/pc_it/1180.htm
belongs_toがわかりやすい

http://runble1.com/fuelphp-orm-hasmany/
関連のデータの扱い方がわかりやすい

http://piyopiyocs.blog115.fc2.com/blog-entry-574.html
発行SQLまで書き下しているのでわかりやすい

model_softについて

うまくいかない

どうも、allとかfirstなどの指定が使えないような気がする。
1.7あたりはバグを含んでるみたい。findがうまく機能しないでエラーになるのでたぶんそれだな。
http://stackoverflow.com/questions/21018263/fuelphp-permanently-deleting-with-model-soft
1.8はまだdevelopになってる。
ひとまずはsoftはつかわずにいくか。一時的に使うとかできればいいけどな。

http://qiita.com/moroya/items/80f1746909aaf2fc6867
softで喜んでる例

その後できたっぽい

・デフォルトのままの、deleted_atのカラムにした。(多分これは要因ではない)
・deleted_atにnullを許可した
・cascade_save,cascade_deleteまわりを少し理解して設定した

モデルの変更例は下記を参考
http://d.hatena.ne.jp/kaitoh07/20130115/1358219271

公式は下記
http://fuelphp.jp/docs/1.8/packages/orm/model/soft.html

このcascadeはfalseで、親のcascadeをtrueにする方向で。
http://madroom-project.blogspot.jp/2011/11/ormmodel.html

            'cascade_save' => true, // true/falseどちらで有るべきか、要調査。とりあえずはドキュメント通り。
            'cascade_delete' => true, // falseにすると、削除時にtwitter_userが削除されなかった。

            'cascade_save' => false, // trueにすると一切の変更がない場合のsave()でエラーとなる。
            'cascade_delete' => false, // trueにすると削除時に親も消してしまう。注意。

cascade_save, cascade_delete

cascade_saveするときって、createのときのバリデーションをどうすればいいのだろう。
ひとまずトランザクションで囲んでtrycatchでエラー制御してるので、これについては未確認。

updateについて

stashしてmargeするらしい。
http://runble1.com/fuelphp-update-git/

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3