機能要望 > その他 > FindByで、NOT条件を指定したい |
その他
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
chappy |
投稿日時: 2016/10/11 14:35
対応状況: −−−
|
一人前 登録日: 2011/7/19 居住地: 投稿: 87 |
FindByで、NOT条件を指定したい FindByでは、NOT条件を指定することはできるのでしょうか?
いろいろ検索してみましたが、分かりませんでした。 Parent は nullを指定 id は「1,3,6」以外 という風に条件を指定したいのですが、 記述が分からず困っています。 何かご存じの方、宜しくお願いします。 ---------------- $Categories = $app['eccube.repository.category'] ->findBy( array( 'Parent' => null, ???ここら辺から分からないです。 'AND' => array( 'NOT' => array( 'id' => array(1,3,6) ) ) ), array('rank' => 'DESC') ); |
umebius |
投稿日時: 2016/10/12 2:02
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: FindByで、NOT条件を指定したい QueryBuilderとか他の方法でいけるのでは?
こんなのもいけるんじゃないでしょうか。(未検証) $criteria = new \Doctrine\Common\Collections\Criteria(); $criteria->where($criteria->expr()->('id', [1,3,6])); $result = $app['eccube.repository.category']->matching($criteria);
|
chappy |
投稿日時: 2016/10/12 21:38
対応状況: −−−
|
一人前 登録日: 2011/7/19 居住地: 投稿: 87 |
Re: FindByで、NOT条件を指定したい umebiusさん、いつもありがとうございます。
教えて頂いた記述ですと、 真ん中の行でエラーになりました。 Parse Error: syntax error, unexpected '(', expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' ----------------------------------------------- 結局どこを直せばいいのか分からなかったのですが、 調べた結果、以下のような形ですと、1以外のものを抽出することができました。 $criteria->where($criteria->expr()->neq('id','1')); しかし、1,3,6を指定する、他の条件を付けたす等の記述は分かりませんでした。 ※[1,3,6]では、動きませんでした。 他の方法も含め、調査中ですが、さらに何かヒントをご存じでしたら、お願いします。 |
umebius |
投稿日時: 2016/10/13 0:43
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: FindByで、NOT条件を指定したい エラーってshort syntaxのせいでしょうか?
QueryBuilderで書くならこんな感じでしょうか
|
chappy |
投稿日時: 2016/10/13 20:23
対応状況: −−−
|
一人前 登録日: 2011/7/19 居住地: 投稿: 87 |
Re: FindByで、NOT条件を指定したい QueryBuilderにて、思い通りの動作を確認できました。
ありがとうございました! |
umebius |
投稿日時: 2016/10/14 1:17
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: FindByで、NOT条件を指定したい 良かったです。
QueryBuilder便利ですよね!
|
nanasess |
投稿日時: 2016/10/14 19:18
対応状況: −−−
|
神 登録日: 2006/9/9 居住地: 投稿: 2313 |
Re: FindByで、NOT条件を指定したい 蛇足ですが、、こんなメソッドを書くと、汎用的ですっきりすると思います
https://github.com/EC-CUBE/ec-cube/pull/1845/files#diff-5ee356332b9db75a34cad77837ea5d16R38 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |