前提・実現したいこと
cakephpでpayjpAPIを使った決済システムの改修をしています
カード情報が変更されたタイミングで、変更後のカードも定期決済ができるよう処理をしたいです
この場合、新しいカード情報を登録した時にDBに登録するIDを利用する必要があります
発生している問題・エラーメッセージ
カード情報を変更する処理はトランザクション内に書かれているため、新しく生成された半角英数字のIDを取得することができません
(通常のinsertで使える$this->getLastInsertID();が使えないため)
トランザクション内で実行されたsaveコマンドにより生成されたIDを取得するにはどうしたら良いでしょうか?
保存方法・環境
DB Mysql
IDを取得しようとしているデータの保存方法 $this->Model->save($変数A);
ログ出力しようとして試した書き方
use Cake\Error\Debugger;
$hogehoge_id = $this->getLastInsertID();
または
$hogehoge_id = $変数A->id;
でログ出力を試みました
Debugger::log('ID取得状況確認' . $hogehoge_id);
特に独自に設定しているものはなく、通常PHPで保存されたばかりのもののIDを取得できる方法を試しました
どちらの書き方をしてもログに書き出されることはありませんでした
トランザクション内では使えるけれど、commiteされるまで外部からは見れないとご指摘いただいたのでログ出力されないのかと思っているのですがこの理解であっていますでしょうか?
それとも取得方法が間違っているのでしょうか?
回答2件
あなたの回答
tips
プレビュー