Wiem, że mogę zaktualizować (lub ustawić wartość) pole referencji encji w Drupal 7 za pomocą kodu podobnego do następującego.
$node['field_code_used_by'][LANGUAGE_NONE][0]['target_id'] = $id;
Chcę programowo ustawić wartość dla mojego pola referencyjnego encji użytkownika w Drupal 8.
Starałem się $node->field_code_used_by->setValue(1);
, a $node->field_code_used_by->entity->value = 1;
jednak żaden z nich nie pracował.
Jak ustawić wartość w polu referencyjnym encji?
Podobnie jak w D7, główną właściwością pola referencyjnego w D8 jest nadal
target id
:entity
Własność jest wartość wyliczona. Jeśli umieścisz obiekt w tej wartości, drupal przekonwertuje go z powrotem na identyfikator przed zapisaniem go w bazie danych.Pola wielowartościowe
Dodaj element do pola wielowartościowego:
Właściwość
target_id
nie jest konieczna, ponieważ jest główną właściwością i jest używana domyślnie. Tak więc dla większości pól możesz dodać wartość jak w prostej tablicy php, którą łatwo zapamiętać:źródło