PDA

Просмотр полной версии : вспомогательный класс EntityFieldQuery в Drupal7



Babylon
09.03.2011, 15:50
господа, доброго дня!

есть вот такая таблица 'table_name' в базе mysql:
http://s61.radikal.ru/i174/1103/0b/05cc4ee9f827.jpg

задача: проверить, существует ли запись в таблице с определенным uid. если существует, то
echo значения всех колонок этой записи, если не существует, то внести запись взяв uid из global $user. под одинаковыми uid несколько записей существовать не могут, т.е. все записи в базе уникальны.

с помощью db_result(db_query('sql запрос') это делалось в предыдущих версиях. но в 7ке все по-другому. в последнем друпале все запросы к базе нужно делать через EntityFieldQuery, вроде подобного:


$query = new EntityFieldQuery;

$result = $query
->entityCondition('entity_type', 'node')
->propertyCondition('status', 0)
->fieldCondition('scheduler', 'value', REQUEST_TIME, '<')
->execute();
if (!empty($result['node'])) {

$nodes = entity_load('node', array_keys($result['node']));
foreach ($nodes as $node) {
$node->status = 1;
node_save($node);
}
}

в сети мало описания по этому вспомогательному классу, а то, что есть перебрал уже вдоль и поперек - ума не приложу, как с помощью этого реализовать простейшую задачу.

заранее спасибо за помощь!