Форма PHP8.4 Doctrine не фильтрует список элементов с несколькими входными флажкамиPhp

Кемеровские программисты php общаются здесь
Anonymous
Форма PHP8.4 Doctrine не фильтрует список элементов с несколькими входными флажками

Сообщение Anonymous »

У меня есть таблица свойств. У меня есть таблица свойств недвижимости. Эти два отношения представляют собой связь ManyToMany с результирующей таблицей PropertiesFeatures.
У меня есть форма с флажками для функций, которую я использую для фильтрации свойств с выбранными функциями. Если я установлю один флажок, он отобразит все свойства, имеющие эту функцию. Но если я установлю несколько флажков, никаких свойств не будет. Просто не могу понять почему.
Форма: Контроллер:

Код: Выделить всё

$keywords['feature'] = $this->request->query->get('feature') ?? array();
$properties->setCustomSearch($keywords);
Класс PropertyList:

Код: Выделить всё

public function finalizeQuery(QueryBuilder $query)
{
...
$features = $this->custom_search['feature'];

if (!empty($features)) {
$query->leftJoin('c', 'PropertiesFeatures', 'f', 'f.property_id = c.id');

foreach ($features as $feature) {
$query->andWhere('f.feature_id = ?')->setParameter($paramcount++, $feature);
}
}

return $query;
}
Вывод dd($query):

Код: Выделить всё

  -sqlParts: array:10 [▼
"select" => array:1 [▼
0 => "c.id"
]
"distinct" => false
"from" => array:1 [▶]
"join" => array:1 [▼
"c" => array:2 [▼
0 => array:4 [▶]
1 => array:4 [▼
"joinType" => "left"
"joinTable" => "PropertiesFeatures"
"joinAlias" => "f"
"joinCondition" => "f.property_id = c.id"
]
]
]
"set" => []
"where" => Doctrine\DBAL\Query\Expression\CompositeExpression {#2110 ▼
-type: "AND"
-parts: array:4 [▼
0 => "c.created >= ?"
1 => "c.created 

Подробнее здесь: [url]https://stackoverflow.com/questions/79793762/php8-4-doctrine-form-not-filtering-item-list-with-multiple-checkbox-inputs[/url]

Вернуться в «Php»