新規データ作成やプラグインのマイグレーション作成の際に、既に存在するデータの最大値を取得したい場合があります。

そんな時は直接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オープンプラットフォーム「EC-CUBE」 EC-CUBEゴールドパートナー EC-CUBEは株式会社イーシーキューブの商標です

EC-CUBEカスタマイズに関するお問い合わせはこちら


    [重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。

    EC-CUBEバージョンアップ