質問はおそらくかなり奇妙に聞こえるでしょう。ここに問題があります:私はモデルFollowingStationLine
とそれに対応するテーブルfollowing_station_lines
を持っています。モデルでは、$this->save(array('field' => 'value));
というレコードを保存しようとしています。対応するページにヒットすると、メソッドは無限ループで呼び出されているように見えます(保存文の前後にあるdebug()
を入れました)、メモリの上限に達したときだけ終了します。 2GBのメモリでも試してみましたが、それと同じ問題です。レコードを保存するときにCakePHP 2.1が無限ループに入ります
これは、FollowingStationLinesController
以外の別のコントローラからメソッドを呼び出すときにも発生します。他のすべてのモデル/テーブルは、このモデルの横に期待どおりに機能します。私は本当に何が問題なのか想像できません。ここでは、コントローラのためのコードは、それぞれのモデルです:
コントローラー:
App::uses('AppController', 'Controller');
class FollowingStationLinesController extends AppController {
public function admin_set() {
$this->FollowingStationLine->set(array(1));
}
}
モデル:
App::uses('AppModel', 'Model');
class FollowingStationLine extends AppModel {
public function set($lineIds = array()){
if(!is_array($lineIds)){
return false;
}
$save = array();
$save[] = array('station_id' => 45);
debug($save[0]);
$this->save($save[0]);
}
}
すべてのヘルプは非常にいただければ幸いです!
ああ、私...、この上の数日間立ち往生されて非常にイライラ...この貴重なヒントをいただき、ありがとうございます。私がケーキの方法を無効にしていたことに気付かなかった。 – linkyndy
@linkyndy疑問があるときは、ソースに行く! :) – Farray
知っていますが、メソッドをオーバーライドする可能性がありませんでした。教訓: – linkyndy