2013年10月25日金曜日

【バグ報告】FuelPHP1.7でViewModelが二回実行される

FuelPHP1.7出たので早速使ってみて早速バグを踏みました。
皆さんには同じ悲しみを抱いて欲しくないので情報共有しておきます。


対象 FuelPHP1.7(2013/10/25現在 俺の誕生日

■現象
上記のバージョンのFuelPHPのViewModelが2度実行されると言うものです
例えば現象として

  • ViewModel中でInsertすると二個データが入る
  • ViewModel中でValidation::forge();などを呼ぶと二度目の呼び出しでerrorが発生する

などが発生します。
こちらについてはfuelphp_jpのMLでも話題になってました。

1.7 の viewmodel の挙動について - Google Groups


対策は public/index.php の75行目あたりに以下のとおり

// Render the output
$response->body((string) $response->body());

を追記してください。
また下記のリンクも参考になります

Github

こちらは1,6や1.8/developでは修正されています。
該当のバグに出会ったときはバージョンを帰るか上記のとおり、ソースを修正してみてください。