Форма 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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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