[FuelPHP]1.5/masterのBelongs Toでの注意メモ
FuelPHP1.5系のOrm¥Modelでバグ(だよね?)を踏んでハマったのでメモ。
再現方法と事象
- Belongs Toのrelationを設定するモデルでkey_fromにそのモデルのPK項目を指定
- 上のモデルに対してdelete()を実行
- `FuelException`(Primary key on model モデル名 cannot be changed.)をくらう
- いぇーい
対応
1.6系では修正されていたので、ORMパッケージだけ1.6系を使うことにしました。
ちなみにOrm¥Model_Softを使う場合は上の事象は発生しません。
エラーは次の行から発生、PKにnullをsetしちゃダメよー制約。
確かドキュメントに書いてあったとは思うけど、、、
そもそもなんでdeleteしたのにsetが呼ばれてるのかという疑問。
調査メモ
エラーは次の行から発生、PKにnullをsetしちゃダメよー制約。
確かドキュメントに書いてあったとは思うけど、、、
そもそもなんでdeleteしたのにsetが呼ばれてるのかという疑問。
Orm¥Model#delete()内でrelationにdeleteをかけている。ふむふむ。
Orm¥Model_softではrelationのdeleteしていないので今回の事象は発生しないみたい。
key_fromの項目にnullをsetしてるっぽい。これだなぁ。。。
unsetしたらよさそうだなーと思ったけど、、、どうなんだろ?
1.6/developで修正してるコミットを発見。
そもそもここでnullをsetする必要ないんかい。。。
それにしてもFuelさんは例外時にデフォルトでログにスタックトレース吐いてくれてもよいんじゃないかと思うんだ。。。。
コメント
コメントを投稿