2012-03-09 104 views
1

我正在通過SimpleTest在CakePHP 1.3中編寫單元測試。從CakePHP中的SimpleTest TestAction獲取LastInsertId

我運行下面的代碼,它的工作原理(它創建如預期)

$this->testAction('/post/add/user:'. $userId, array('method' => 'post'));

我需要找到後添加的ID在接下來的兩個測試使用 - 修改帖子和刪除帖子。我已經嘗試通過模型引用(即$ Post-> id,$ this-> Post-> id),但似乎通過testAction的工作方式不同。

我也意識到我可以查詢max(id),但是如果碰巧是另一個用戶在測試系統誰插入一個新的帖子在幾乎同時,它可能會搞砸了結果(至少據我所知 - 糾正我,如果我錯了)。

回答

1

通常情況下,從控制器,你應該使用

$this->Post->getLastInsertID(); 

這是連接方法的包裝。

$this->Post->id 

用於設置一個id然後檢索或設置數據。