FuelPHPのORMで取得したデータ周りの注意点

2015年4月28日


FuelPHPを利用した案件でデバッグ周りで困った事、取得したデータで困った事などがあったのでメモ書き程度にブログ更新。

CakePHP2.x系ではdebug()を使って取得したデータを確認しながらプログラミングをしていた所為もあり、

FuelPHPのORMモデルのデバッグ時に初めの頃理解出来なかったのですが、FuelPHPのORMモデルは取得したデータをオブジェクトとして保持しています。

このオブジェクトはArrayAccessインターフェイスを継承しているので配列としてアクセスする事が出来ます。

ですがこのデータだとCakePHPのdebug()にあたる、FuelPHPのDebug::dump()で表示させた際に、配列としてではなくオブジェクトとして内容を表示してしまいます。

慣れない最初の頃は意味不明でした…。

これはORMモデルに実装されてある、to_array()を使用する事で配列化する事が出来ます。

マニュアルに詳しく載っていないので見つけるまで苦労しましたが、このメソッドのおかげでデバッグが少し楽になりました。

ところが、このto_array()を利用した時にリレーションされてあるはずのデータが消えてしまうという不具合にぶち当たりました。

この場合はto_array()を利用せずオブジェクトのままArrayAccessを使う事で解決出来ますので、この場合はそのようにデータを扱えばいいと思います。

なぜto_array()時にデータの消失が起こってしまうのかの原因はまだつかめていないので、気が向いたらソースを追うなりで、そのうち解決できれば…。

有力なソースがあれば教えていただけると助かります(笑)


  • カテゴリー:Tips
  • タグ:
  • 投稿者:73blog

▲BACK TO TOP