[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が呼ばれてるのかという疑問。

Orm¥Model#delete()内でrelationにdeleteをかけている。ふむふむ。
Orm¥Model_softではrelationのdeleteしていないので今回の事象は発生しないみたい。
key_fromの項目にnullをsetしてるっぽい。これだなぁ。。。
unsetしたらよさそうだなーと思ったけど、、、どうなんだろ?
1.6/developで修正してるコミットを発見。
そもそもここでnullをsetする必要ないんかい。。。

それにしてもFuelさんは例外時にデフォルトでログにスタックトレース吐いてくれてもよいんじゃないかと思うんだ。。。。

コメント

このブログの人気の投稿

inotify でファイル監視しようず!

「SQL実践入門」がとてもわかりやすい

PostgreSQLで多次元配列を1次元配列に展開したい