Rules - Программное заполнение полей

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

Аватар пользователя molp molp 21 мая 2016 в 9:29

Вообще задача заключается в том чтобы после создания материала типа B, прикрепить его к ранее созданному материалу типа A.

Я написал правило rules, которое реагирует на событие создания нового материала типа A и в action "Execute custom PHP code" программно создает материал типа B.

Пишу правило, которое после создания материала типа B, прикрепит его к материалу типа A, указав в поле Entity Reference - Autocomplete его заголовок.

В том же самом rules добавляю второй action "Execute custom PHP code" с кодом

<?php
$nid 
$node->nid;
$node node_load($nid);
$node->field_test['und'][0]['value'] = '[node:title]'// Для тестового     <em>Text - Text field</em>
$node->field_location['und'][0]['target_id'] = '[node:title]'// Для <em>Entity Reference - Autocomplete</em>
node_save($node);
?>

Данный код прекрасно работает с обычным текстовым полем, подставляя значение и сохраняя материал, но с полем Entity Reference - Autocomplete получаю ошибку:

PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect integer value: 'Title' for column 'field_location_target_id' at row 1: INSERT INTO {field_data_field_location} (entity_type, entity_id, revision_id, bundle, delta, language, field_location_target_id) 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); Array ( [:db_insert_placeholder_0] => node [:db_insert_placeholder_1] => 136 [:db_insert_placeholder_2] => 136 [:db_insert_placeholder_3] => server [:db_insert_placeholder_4] => 0 [:db_insert_placeholder_5] => und [:db_insert_placeholder_6] => Title ) in field_sql_storage_field_storage_write() (line 514 of C:\OpenServer\domains\domain.local\modules\field\modules\field_sql_storage\field_sql_storage.module).

ps: field_test['und'][0]['value'] и field_location['und'][0]['target_id'] беру из разметки страницы, как значение аргумента name для input

upd: Поле Entity Reference - Autocomplete в коде представлено двумя полями. Возможно в этом дело?