Существует ли противоположный/обратный uri сущности()?
Я понимаю, что entity_uri() генерирует uri для профильной сущности
Http://api.drupal.org/api/drupal/includes--common.inc/function/entity_uri
Однако можно ли пойти другим путем? есть ли в drupal функция для передачи системного uri и проверки, является ли это сущностью? а затем вернуть объект сущности?
1 answers
Боюсь, что нет ничего (по крайней мере, существующего), что могло бы это сделать, функция URI предоставляется модулем, реализующим сущность (в hook_entity_info()
) и метод в этой функции полностью прозрачен для Drupal... основной модуль сущности не дает модулям возможности реализовать функцию, которая отменяет процесс, и не хранит , как было выполнено преобразование.
Из-за этого я не думаю, что полностью универсальная функция возможна, однако вы можно было бы сделать это по типу по типу:
$uri = entity_uri('node', $entity);
if (preg_match('/node\/([0-9+])/', $uri, $matches)) {
$entity2 = entity_load('node', array($matches[1]));
}
Затем вы можете извлечь эту логику, чтобы создать немного более универсальную функцию, основанную на известных атрибутах вашей установки Drupal...хотя это не очень приятный способ сделать это, я бы хотел услышать другое решение этой проблемы.