Как получить идентификатор пользователя заказа из оболочки метаданных сущности заказа


Я внедряю hook_commerce_cart_line_item_refresh(). Он будет получать обертку метаданных строки и сущности для коммерческого заказа.

Как я могу получить идентификатор пользователя порядка из его оболочки метаданных без загрузки объекта пользователя, подобного этому

$uid = $order_wrapper->owner->value()->uid

В приведенной выше строке будет загружаться объект пользователя. Я хотел бы избежать загрузки объекта пользователя и просто взять uid напрямую.

Следующая строка не работает:

$uid = $order_wrapper->uid;

Или мне следует подумать о загрузке объекта заказа? Как это могло бы быть уже в статическом кэше.

Спасибо

Author: Junaid, 2014-09-25

4 answers

Это то же самое, что и любое свойство в оболочке метаданных:

$uid = $order_wrapper->uid->value();

Или мне следует подумать о загрузке объекта заказа?

У вас не может быть оболочки метаданных сущности без базовой сущности, поэтому объект, на который вы ссылаетесь, уже "загружен". Вы можете получить его с помощью

$order = $order_wrapper->value();
 8
Author: Clive, 2014-09-25 08:33:11

Вам нужно получить uid из объекта сущности.

$uid = $order_wrapper->value()->uid;
 2
Author: manish_s, 2015-09-22 11:01:23

Для поля ссылки на многозначную сущность вы можете получить исходные значения, используя этот шаблон

$wrapper->field_multiple->raw()

Это вернет массив, подобный следующему:

array(0 => 123, 1 => 456)
 0
Author: Cristian Romanescu, 2017-12-12 15:16:08

Правильный ответ:

$uid = $order_wrapper->автор->uid->значение();

 -1
Author: Ponzio Pilato, 2017-02-28 18:27:35