這個問題可能聽起來很奇怪,實際上也是如此。問題出在這裏:我有一個模型,FollowingStationLine
及其相應的表,following_station_lines
。在模型中,我試圖用$this->save(array('field' => 'value));
保存一條記錄。當我點擊相應的頁面時,該方法似乎是在無限循環中調用(我在save語句之前和之後放置了一些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]);
}
}
任何幫助,將不勝感激!
哦,我......很沮喪,一直停留在爲這幾天的......謝謝你這個寶貴的線索。沒有意識到我重寫了Cake的方法。 – linkyndy 2012-03-07 17:21:21
@linkyndy如有疑問,請轉到源文件! :) – Farray 2012-03-07 17:22:39
知道,但錯過了重寫方法的可能性。獲得的教訓:) – linkyndy 2012-03-07 17:24:00