cboissenin
11/14/2016 - 9:40 AM

Query & Database

Query & Database

//Get Entity Query Service
$query = \Drupal::entityQuery('node') or use Dependency injection (Best Practice)

// Query a given entity
$query = $this->entity_query->get('entity_name');

// Add condition on entity propery
$query->condition('status', 1);

// Add condition on field
$query->condition('field_name', $entity_id);

// Add condition IN 
$query->condition('field_inscription_status', $status, 'IN');

// Execute the query
$result = $query->execute();

// Advanced Example using AND & OR
// orConditionGroup() and andConditionGroup
// See https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Entity%21Query%21QueryInterface.php/function/QueryInterface%3A%3Acondition/8.2.x for condition

$query = \Drupal::entityQuery('node')
    ->condition('status', 1)
    ->condition('changed', REQUEST_TIME, '<');

$group = $query->orConditionGroup()
    ->condition('title', 'cat', 'CONTAINS')
    ->condition('field_tags.entity.name', 'cats');

$nids = $query->condition($group)->execute();
// Using database connection and classic query

$db = \Drupal::database();

$data = $db->select('table_name','t')->fields('t')->execute();

$db->insert();

$db->update();