[gelöst] References - was mache ich falsch?
am 15.07.2014 - 20:11 Uhr in
Ich brauche weitere Augen - ich sehe keine Fehler.
Ich habe einen Node, der sich auch speichern und bearbeit lässt, den enthält ein Feld fields_position, das ein referenzfeld ist.
Dem weise ich folgendes zu:
$pp=add_order_pos("pos");
$node->field_position[$node->language][]['value'] = array( $pp, 'target_type' => 'node');Das ist die Funktion add_order_pos:
function add_order_pos($order){
$o_node=new stdClass();
$o_node->title = "Buchtitel";
$o_node->type = "product";
node_object_prepare($o_node); // Sets some defaults. Invokes hook_prepare() and hook_node_prepare().
$o_node->language = "de";
$o_node->uid = 0;
$o_node->status = 1; //(1 or 0): published or not
$o_node->promote = 0; //(1 or 0): promoted to front page
$o_node->comment = 0; // 0 = comments disabled, 1 = read only, 2 = read/write
$o_node->body['und'][0]['value'] = "Beschreibung des Buches";
$o_node = node_submit($o_node);
node_save($o_node);
return $o_node->nid;
}Es gibt keinen Fehler, aber die Position wird zwar erfasst, aber nicht verlinkt.
Die NID des Positionsnodes wird richtig übertragen und der Node auch angelegt.
Nur der Eintrag in das entity_reference_field klappt nicht.
- Anmelden oder Registrieren um Kommentare zu schreiben

Was steht denn in dem Feld,
am 15.07.2014 - 21:05 Uhr
Was steht denn in dem Feld, wenn Du einen solchen Node "zu Fuß" anlegst? Hast Du Dir die Struktur mit devel einmal angesehen?
ich habe es selbst gefunden
am 15.07.2014 - 21:23 Uhr
Manchmal darf man nicht glauben, was man im Netz findet.
Es ist viel einfacher:
$node->field_position['und'][]['target_id'] = add_order_pos("pos");Der Sprachcode darf NICHT drin sein, es muss UND heißen.
Den Targettyp muss man nur angeben, wenn es NICHT node ist.
Jetzt funktionierts mit den Demodaten.