新規データ作成やプラグインのマイグレーション作成の際に、既に存在するデータの最大値を取得したい場合があります。
そんな時は直接SQLを発行しても良いのですが、Doctrineを使用すると便利です。
商品IDの最大値を取得する方法(例:dtb_product)
次のようにQueryBuilderで書けます。
$app = \Eccube\Application::getInstance(); $maxRank = $app['eccube.repository.product'] ->createQueryBuilder('p') ->select('max(p.id)') ->getQuery() ->getSingleScalarResult();
Rankの最大値を取得する方法(例:dtb_csv)
$app = \Eccube\Application::getInstance(); $maxRank = $app['eccube.repository.csv'] ->createQueryBuilder('p') ->select('max(p.rank)') ->getQuery() ->getSingleScalarResult();
EC-CUBEをご利用の方は参考にしてみてください。
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。