Как получить идентификатор пользователя заказа из оболочки метаданных сущности заказа
Я внедряю hook_commerce_cart_line_item_refresh()
. Он будет получать обертку метаданных строки и сущности для коммерческого заказа.
Как я могу получить идентификатор пользователя порядка из его оболочки метаданных без загрузки объекта пользователя, подобного этому
$uid = $order_wrapper->owner->value()->uid
В приведенной выше строке будет загружаться объект пользователя. Я хотел бы избежать загрузки объекта пользователя и просто взять uid напрямую.
Следующая строка не работает:
$uid = $order_wrapper->uid;
Или мне следует подумать о загрузке объекта заказа? Как это могло бы быть уже в статическом кэше.
Спасибо
4 answers
Это то же самое, что и любое свойство в оболочке метаданных:
$uid = $order_wrapper->uid->value();
Или мне следует подумать о загрузке объекта заказа?
У вас не может быть оболочки метаданных сущности без базовой сущности, поэтому объект, на который вы ссылаетесь, уже "загружен". Вы можете получить его с помощью
$order = $order_wrapper->value();
Вам нужно получить uid
из объекта сущности.
$uid = $order_wrapper->value()->uid;
Для поля ссылки на многозначную сущность вы можете получить исходные значения, используя этот шаблон
$wrapper->field_multiple->raw()
Это вернет массив, подобный следующему:
array(0 => 123, 1 => 456)
Правильный ответ:
$uid = $order_wrapper->автор->uid->значение();