CakephpでSimpleTest TestActionからLastInsertIdを取得する
-
10-12-2019 - |
質問
私はSimpleTestを介してcakephp1.3で単体テストを書いています。
私は動作する次のコードを実行します(期待どおりに作成します)
$this->testAction('/post/add/user:'. $userId, array('method' => 'post'));
次の2つのテストで使用する追加された投稿のIDを見つける必要があります-投稿の編集と投稿の削除。私はモデルを参照しようとしました(つまりPost Post->id、this this->Post->id)しかし、testActionを通過することは同じようには機能しないようです。
私はまた、max(id)を見つけるために照会することができることを認識していますが、テストシステムに新しい投稿を挿入する別のユーザーがいる場合は、 もうちょっと。 同時に、それは結果を台無しにする可能性があります(少なくとも私が知っている限り-私が間違っている場合は私を修正してください)。
解決
通常、コントローラから使用する必要があります
$this->Post->getLastInsertID();
これは、コネクタメソッドのラッパーです。
$this->Post->id
idを設定し、データを取得または設定するために使用されます。
他のヒント
私は以前にcakephpを使用したことはありませんが、mysqlとmysqliを使用すると、最後に挿入されたIDを次のように取得できます:
mysql_insert_id()
, 、および $mysqli->insert_id
それぞれ。
所属していません StackOverflow