Drupal 8 – Database API. Часть 2 – Основные запросы в БД

Опубликовано: 15.10.2017

видео Drupal 8 – Database API. Часть 2 – Основные запросы в БД

Drupal 8 : Form API

Из предыдущего урока мы с вами научились создать и удалять таблицу в нашей БД, сегодня мы будем разбираться, как обращаться к БД.



Так же в прошлом уроке мы с вами создали модуль, я так же будут использовать его для наших примеров, только первоначально создам дополнительный блок для тестов, в который и будем выводить результаты наших запросов. Сам модуль, используемый в примере, вы сможете скачать в конце статьи. Так же вывел данный блок в основной регион.


Drupal 7 Module Development Part 6 - Form API and Database inserts - Daily Dose of Drupal Episode 21

Выборка единственной записи в строке с условием:

<?php # Выборка единственной записи $query = \Drupal::database()->select('users_field_data', 'ufd'); $query->addField('ufd', 'mail'); $query->condition('ufd.uid', 1); $mail = $query->execute()->fetchField();

Где:

addField() – содержит название поля для выборки condition() – условия выборки


Introduction to the Node API (a Drupal how-to)

Выборка нескольких записей в строке с условием:

<?php # Выборка нескольких записей $query = \Drupal::database()->select('users_field_data', 'ufd'); $query->fields('ufd', array('langcode', 'name', 'mail', 'created')); $query->condition('ufd.uid', 1); $output = $query->execute()->fetchAssoc();

Где:

fields() – содержит массив с имена полей для выборки

Выборка с сортировкой по полю:

<?php # Выборка с сортировкой по полю $query = \Drupal::database()->select('database_ex', 'de'); $query->fields('de', array('id', 'uid', 'text', 'timestamp')); $query->orderBy('de.id', 'DESC'); $output = $query->execute()->fetchAll();

Где:

orderBy() – содержит имя поля, по которому необходимо сортировать и значение сортировки ASC, DESC

Выбрать определенное кол-во записей:

<?php # Выбрать определенной кол-во записей $query = \Drupal::database()->select('database_ex', 'de'); $query->fields('de', array('id', 'uid', 'text', 'timestamp')); $query->orderBy('de.id', 'DESC'); $query->range(0, 1); $output = $query->execute()->fetchAll();

Где:

range() – содержит значения для ограничения выборки. Например в данном случае, запись говорит, что нужно получить только первую запись

Использование db like:

rss