Ошибка: Column 'field_price_krasnodar_currency_code' cannot be null . Как побороть?

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

Аватар пользователя kompospec kompospec 7 мая в 16:17
<?php

$noda 

548;
    
    print 
" <a href='/admin/commerce/products/$noda'>$noda</a><p> </p>";
    
    
$pr commerce_product_load($noda);
    
    
$pr->field_price_krasnodar['und'][0]['amount'] = '55500';
    
    
commerce_product_save($pr);?>

Выдаёт ошибку:

PDOException: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'field_price_krasnodar_currency_code' cannot be null: INSERT INTO {field_data_field_price_krasnodar} (entity_type, entity_id, revision_id, bundle, delta, language, field_price_krasnodar_amount, field_price_krasnodar_currency_code, field_price_krasnodar_data) VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7, :db_insert_placeholder_8); Array ( [:db_insert_placeholder_0] => commerce_product [:db_insert_placeholder_1] => 548 [:db_insert_placeholder_2] => 1570 [:db_insert_placeholder_3] => product [:db_insert_placeholder_4] => 0 [:db_insert_placeholder_5] => und [:db_insert_placeholder_6] => 55500 [:db_insert_placeholder_7] => [:db_insert_placeholder_8] => ) в функции field_sql_storage_field_storage_write() (строка 622 в файле /var/www/********/data/www/*****/modules/field/modules/field_sql_storage/field_sql_storage.module).

Помогите пожалуйста. Спасибо. D7

Лучший ответ

Комментарии

Аватар пользователя kompospec kompospec 7 мая в 16:25

А если поля цены в Ноде заполнены - то всё работает.
Получается что я не могу программно заполнить пустые поля Ноды.

Аватар пользователя cwpnaWLs7M4a cwpnaWLs7M4a 7 мая в 17:49

что поиск говорит? мне сказал https://www.drupal.org/forum/support/post-installation/2014-02-28/how-i-...

So, to summarise, if you are having a similar problem, try changing the insert to only insert 1 record at a time and it will make the solving of the source of the problem almost trivial.

вставляй 1 запись.

Аватар пользователя OldWarrior OldWarrior 9 мая в 1:16

Строго говоря, вся эта возня с полями (или непосредственно кодом значений полей) должна быть заменена на работу с методами enity wrapper (для commerce в 7.x есть такая возможность). Тогда многое решается автоматом.

Аватар пользователя kompospec kompospec 9 мая в 1:26

Тогда, конечно, вам не составит труда набросать тут код для замены НЕСУЩЕСТВУЮЩЕГО значения цены в Коммерсе. Спасибо.

Аватар пользователя OldWarrior OldWarrior 9 мая в 1:36

В свою очередь, думаю, что вам не составит труда объяснить, что же в итоге подразумевается под несуществующим значением (и на основании чего вы сделали вывод, что оно не существует) и в чём конкретно у вас сложность с указанием этой цены.

Аватар пользователя OldWarrior OldWarrior 9 мая в 1:52

Просто для примера работы с entity wrapper - у xandeadx'а давным-давно висит вводный манул: http://xandeadx.ru/blog/drupal/549 Хорошо показано, в чём удобство работы со значениями полей сущности через врэппер.

Там рассматриваются в основном ноды. Но принципиально этот процесс не отличается от commerce_product. Тут вам уже следует погуглить самостоятельно.