web-dev-qa-db-fra.com

Comment faire plusieurs conditions pour db_update en utilisant la condition OR?

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?

7
kenorb

Drupal 7

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


Drupal 8

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 conjonction OR: new Condition('OR')db_or ()

8
kenorb