6
saveAll()
を使用してCakePHPに複数のレコードを保存すると、テーブルに正常に保存できます。しかし、問題は、保存された行のIDを取得する際に発生します。 LastInsertID()
は最後のIDを1つだけ返します。 saveAll()
を使用して、最後に挿入したすべてのIDを挿入するにはどうすればよいですか?あなたができるようCakePHPのsaveAll()からの挿入IDの取得
saveAll()
を使用してCakePHPに複数のレコードを保存すると、テーブルに正常に保存できます。しかし、問題は、保存された行のIDを取得する際に発生します。 LastInsertID()
は最後のIDを1つだけ返します。 saveAll()
を使用して、最後に挿入したすべてのIDを挿入するにはどうすればよいですか?あなたができるようCakePHPのsaveAll()からの挿入IDの取得
afterSave機能は、SAVEALLの実行中に保存個々の後に呼び出されます:あなたのAppModelで
class AppModel extends Model {
var $inserted_ids = array();
function afterSave($created) {
if($created) {
$this->inserted_ids[] = $this->getInsertID();
}
return true;
}
}
あなたが任意のモデルにこのコードを配置することができますし、それが正常に動作する必要があります。このように、あなたのコントローラにSAVEALL後にIDを返すために、あなたはそうするでしょう:
if($this->Post->saveAll($posts)) {
$post_ids=$this->Post->inserted_ids; //contains insert_ids
}
はそれが
ありがとうのSudhirを役に立てば幸い、私はこれを試してみましたが、そのエラーを投げ 未定義のプロパティ:のAppModel:inserted_ids私のコントローラの 、理由は何でしょうか? – Vineet
@vin.it前にvarを削除する$ inseted_ids – Ehtesham
@ehtesham:thanx ehtesham.iはそれを試しましたが、それでも同じエラーを投げます。他の可能性は..? – Vineet