entity_metadata_wrapper не работает по API

Главные вкладки

Аватар пользователя postgres postgres 18 ноября 2014 в 13:00

Иду по документации.
https://www.drupal.org/documentation/entity-metadata-wrappers

entity_metadata_wrapper

Example of using value(), set() and save()
<?php
$product = getproduct(); // вытаскивается из базы нормально
$product = entity_metadata_wrapper('commerce_product', $product);
$var = 1;
$product->field_number->set($var);
$product->save();
?>

У меня вылетает на методе set.
field_number - это поле, присоединенное к данному типу продукта в коммерце.
Почему set не работает, и как тогда присвоить правильно значение полю?

Комментарии

Аватар пользователя postgres postgres 18 ноября 2014 в 13:41

А что нужно сделать чтобы оно не было multiple values?
Вот например я хочу добавить в коммерц поле логическое, что не надо делать, чтобы оно не получилось multiple values?

дампы сейчас посмотрю

Аватар пользователя postgres postgres 18 ноября 2014 в 14:12

Вообщем в итоге, присваивание сработало вот так:

<?php>
$product->field_number[0] = 1;

И вот тут вопросы... почему работает вот так вот, а не так как написано в API?

Аватар пользователя drupby drupby 18 ноября 2014 в 14:35

"postgres" wrote:
И вот тут вопросы... почему работает вот так вот, а не так как написано в API

вот два варианта рабочих, которые описаны в документации

$product = getproduct(); // вытаскивается из базы нормально
$product = entity_metadata_wrapper('commerce_product', $product);
$var = 1;
$product->field_number[0]->set($var);
$product->save();
$product = getproduct(); // вытаскивается из базы нормально
$product = entity_metadata_wrapper('commerce_product', $product);
$var = 1;
$product->field_number[0] = $var;
$product->save();