我有一個可以為空且不需要的欄位“shopSurface”。
在 EA 中,我添加了一個 NumericFilter:
NumericFilter::new('shopSurface', 'shop_surface')。
如果我想要所有未shopSurface查找的條目equal to并且我將欄位留空但沒有出現任何內容,則串列是空的,而我有一些。
你知道讓它出現的方法嗎?
編輯
我就是這樣做的:
public function apply(QueryBuilder $queryBuilder, FilterDataDto $filterDataDto, ?FieldDto $fieldDto, EntityDto $entityDto): void
{
$alias = $filterDataDto->getEntityAlias();
$property = $filterDataDto->getProperty();
$comparison = $filterDataDto->getComparison();
$parameterName = $filterDataDto->getParameterName();
$parameter2Name = $filterDataDto->getParameter2Name();
$value = $filterDataDto->getValue();
$value2 = $filterDataDto->getValue2();
if (ComparisonType::BETWEEN === $comparison) {
$queryBuilder->andWhere(sprintf('%s.%s BETWEEN :%s and :%s', $alias, $property, $parameterName, $parameter2Name))
->setParameter($parameterName, $value)
->setParameter($parameter2Name, $value2);
} else {
$queryBuilder->andWhere(sprintf('%s.%s %s :%s', $alias, $property, $comparison, $parameterName))
->setParameter($parameterName, $value);
}
if (ComparisonType::EQ === $comparison && '' === $value){
$queryBuilder->andWhere(sprintf('%s IS NULL', $alias));
}
}
uj5u.com熱心網友回復:
您有 2 個解決方案:
- 在 NullFilter 之外添加 NullFilter 以顯示 null 值(所有內置過濾器在此處都是可用的)
或者
- 像這樣添加您的自定義過濾器(此處的檔案)。
如果您需要幫助,請不要猶豫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/489842.html
