バージョン選択

フォーラム

メニュー

オンライン状況

80 人のユーザが現在オンラインです。 (69 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 80
もっと...

サイト内検索

プラグイン > 開発について > リポジトリメソッドのエンティティ名に指定するのは?

開発について

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
h_tanaka
投稿日時: 2017/6/16 12:42
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1646
リポジトリメソッドのエンティティ名に指定するのは?
EC-CUBE 3.0.14

SQLのリポジトリメソッドで、findBy() で指定idのエンティティが取得できますが、これの否定版として、指定id以外のエンティティを取得する findByNot() を作成しようとしています。

以下のサイトを参考にしてメソッドを追加したのですが、うまく動作しません。

https://stackoverflow.com/questions/14085946/doctrine-findby-does-not-equal

app/Plugin/Test/Repository/TestRepository.php
    /**
     * Finds entities by a set not of criteria.
     *
     * @param array      $criteria
     * @param array|null $orderBy
     * @param int|null   $limit
     * @param int|null   $offset
     *
     * @return array The objects.
     */
    public function findByNot( array $criteria, array $orderBy = null, $limit = null, $offset = null )
    {
        $qb = $this->getEntityManager()->createQueryBuilder();
        $expr = $this->getEntityManager()->getExpressionBuilder();

        $qb->select( 'entity' )
            ->from( $this->getEntityName(), 'entity' );

        foreach ( $criteria as $field => $value ) {

            $qb->andWhere( $expr->neq( 'entity.' . $field, $value ) );
        }

        if ( $orderBy ) {

            foreach ( $orderBy as $field => $order ) {

                $qb->addOrderBy( 'entity.' . $field, $order );
            }
        }

        if ( $limit )
            $qb->setMaxResults( $limit );

        if ( $offset )
            $qb->setFirstResult( $offset );

        return $qb->getQuery()
            ->getResult();
    }


おそらく 'entity' にあたる部分を変更しないといけないのだと思うのですが、ここの仕組みがよくわかっていません。
Product なら 'p' 、Order なら 'o' でいいのでしょうが、プラグイン独自で指定した 'plg_test' というテーブル名の場合は何を指定すればいいのでしょうか?
試しに 'plg_test' を指定してみましたが、結果は empty になりました。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » リポジトリメソッドのエンティティ名に指定するのは? h_tanaka 2017/6/16 12:42
     Re: リポジトリメソッドのエンティティ名に指定するのは? h_tanaka 2017/6/16 14:56
       Re: リポジトリメソッドのエンティティ名に指定するのは? hata 2017/6/16 15:43
         Re: リポジトリメソッドのエンティティ名に指定するのは? h_tanaka 2017/6/16 16:48
           Re: リポジトリメソッドのエンティティ名に指定するのは? hata 2017/6/16 18:10
             Re: リポジトリメソッドのエンティティ名に指定するのは? h_tanaka 2017/6/19 10:59

 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,841名です
総投稿数は109,985件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.