質問

私は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 それぞれ。

http://php.net/manual/en/function.mysql-insert-id.php

http://php.net/manual/en/mysqli.insert-id.php

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top