Je souhaite convertir l'instruction UpdateQuery suivante pour qu'elle fonctionne avec plusieurs conditions en utilisant OR
au lieu de la condition par défaut AND
:
db_update('system')
->fields(array('status' => 1))
->condition('type', 'theme')
->condition('name', 'seven') // OR
->condition('name', 'rubik')
->execute();
C'est possible?
Oui, c'est possible en utilisant db_or () DatabaseCondition comme exemple ci-dessous:
db_update('system')
->fields(array('status' => 1))
->condition('type', 'theme')
->condition(db_or()
->condition('name', 'seven')
->condition('name', 'rubik')
)
->execute();
Similaire pour la db_select, voir: condition "OR" dans db_select () et imbriquée OR et condition AND avec db_select
Voir aussi: Conditions multiples pour db_update sur StackOverflow
Vous pouvez toujours utiliser db_or()
comme dans Drupal 7, mais il est obsolète à partir de Drupal 8.0.x et sera supprimé dans Drupal 9.0 .0.
Créez un objet
\Drupal\Core\Database\Query\Condition
En spécifiant une conjonctionOR
:new Condition('OR')
; db_or ()