WhereCustomizer にて WhereClause で AND, OR 条件を追加したい
- Dominant language
- PHP
- Stars
- 788
- Forks
- 719
- Avg merge
- 4d 4h
- Merged PRs (30d)
- 39
Description
## 概要(Overview)
現状 WhereClause に OR 条件が用意されていないため、OR条件を加えるためには QueryCustomizer を実装する必要があります。
AND 条件は複数の WhereClause を定義することで実装可能ですが、 OR と同じく AND 関数も用意しておいた方が柔軟だと思われます。
## 期待する内容(Expect) or 要望 (Requirement)
例えば以下のように指定できるのはどうでしょうか。
```php
class ProductListWhereCustomizer extends WhereCustomizer
{
public function getQueryKey()
{
return QueryKey::PRODUCT_SEARCH;
}
protected function createStatements($params, $queryKey)
{
return WhereClause::and([
WhereClause::eq('pc.stock_unlimited', ':StockUnlimited', false),
WhereClause::lte('pc.stock', ':Stock', 0),
]);
return WhereClause::or([
WhereClause::eq('pc.stock_unlimited', ':StockUnlimited', true),
WhereClause::gt('pc.stock', ':Stock', 0),
]);
}
}
```
## 再現手順(Procedure)
### 環境 (environment)
+ EC-CUBE: 4.0.x
+ PHP: 7.x.x
+ DB:
- PostgreSQL x.x.x
- MySQL x.x.x
## 関連情報 (Ref)
> 参考ドキュメント: https://doc4.ec-cube.net/customize_repository
Contributor guide
Assessment
This issue has not been assessed yet.