{{ form_widget('archive', 'select', {value: req.query.archive, empty: trans('(archive)'), placeholder: trans('(archive)'), options: [ { id: '0', name: 'Non Archivé'}, { id: '1', name: 'Archivé'}, ]}) }}
Ce qui donne 3 valeurs possible dans ce sélecteur : chaine vide, 0 et 1.
Cette version fait genre, mais quand on vide le filtre on devriat voir les archivés et les non archivés. malheureusement avec cette version on aura soit les archivés soit les non archivés.
where.push(`c.archive = ${model.escape(req.query.archive || 0)}`);
Par contre celle la marche vraiment :
req.query.archive ??= '0'; if (req.query.archive === '0') where.push('u.archive = false'); if (req.query.archive === '1') where.push('u.archive = true');
avec cette version par defaut c'est 0 (quand c'est undefined ou null).
et on peut quand même avoir 3 états : chaine vide, 0 et 1
Et en front le sélecteur est bien prérempli en fonction de l'option sélectionnée.