Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
drupal规则在不替换现有数据的情况下向引用节点添加字段数据_Drupal_Drupal Rules - Fatal编程技术网

drupal规则在不替换现有数据的情况下向引用节点添加字段数据

drupal规则在不替换现有数据的情况下向引用节点添加字段数据,drupal,drupal-rules,Drupal,Drupal Rules,我的问题是:“在不替换现有数据的情况下向引用节点添加字段数据” 例如,我有一个项目节点,其中团队成员引用该项目。每个团队成员在其节点上都有一个位置,即“英国”、“美国”、“澳大利亚” 在项目节点上,我有完全相同的字段。我需要创建一个规则,以便在创建“团队成员”节点时,在不替换现有内容的情况下将其位置添加到项目节点 例如,一个有来自英国的团队成员的项目节点的位置字段上也会有“United Kingdom”。当添加来自“美国”的团队成员时,项目的位置字段将有“英国”和“美国”。如果添加了同时位于加拿

我的问题是:“在不替换现有数据的情况下向引用节点添加字段数据”

例如,我有一个项目节点,其中团队成员引用该项目。每个团队成员在其节点上都有一个位置,即“英国”、“美国”、“澳大利亚”

在项目节点上,我有完全相同的字段。我需要创建一个规则,以便在创建“团队成员”节点时,在不替换现有内容的情况下将其位置添加到项目节点

例如,一个有来自英国的团队成员的项目节点的位置字段上也会有“United Kingdom”。当添加来自“美国”的团队成员时,项目的位置字段将有“英国”和“美国”。如果添加了同时位于加拿大和法国的团队成员,则项目的位置将变为英国、美国、加拿大和法国

谢谢

做一些类似于:

return array(
  0 => array('value' => 'United Kingdom')
);
就是不行!它将替换现有的值。如何使其添加到现有值上。谢谢

您是否尝试过:

return array(
  array('value' => 'United Kingdom'),
  array('value' => 'United States'),
);

像这样的东西行吗?基本上,我们捕获当前节点cck位置字段(更改下面的字段名称以适应),加载引用节点,并将位置数据添加到其中,然后将其保存。我没有添加代码来检查位置是否已经存在,但这是另一天的事情。-希望能有帮助

#some debug data below
#krumo ($node);
#print "<pre>". print_r($node,true) . "</pre>";

#$node is our current data set

# save the current $node nid into a variable
$nid = $node->nid; 
#get the reference nid 
$refnid = $node->field_refnid[0][nid];
#get the location
$currentlocation = $node->field_team_location[0][value];

# nowload the reference node
$refnode = node_load ($refnid);
# some debug data below
#krumo ($refnode);
#print "<pre>". print_r($refnode,true) . "</pre>";

$newlocation = array ("value"=>$currentlocation);
$refnode->field_loacations[] = $newlocation;
#now save the reference node
node_save ($refnode);

#drupal_goto ("node/$nid");
#下面是一些调试数据
#krumo($节点);
#打印“”。打印($node,true)。"";
#$node是我们当前的数据集
#将当前$node nid保存到变量中
$nid=$node->nid;
#获取参考nid
$refnid=$node->field_refnid[0][nid];
#获取位置
$currentlocation=$node->field\u team\u location[0][value];
#现在加载引用节点
$refnode=节点加载($refnid);
#下面是一些调试数据
#克鲁莫($refnode);
#打印“”。打印($refnode,true)。"";
$newlocation=数组(“值”=>$currentlocation);
$refnode->field_locations[]=$newlocation;
#现在保存引用节点
节点\保存($refnode);
#drupal_goto(“node/$nid”);

在节点上实际拥有引用还是仅仅显示位置很重要

如果您只是担心显示位置,那么我认为您可以这样做

我相信有一个节点引用反向选项,但这只会显示团队成员,而不会显示位置


如果在项目节点中实际拥有位置信息很重要,那么您必须使用类似的代码。

这将添加英国和美国,但将替换现有的加拿大和法国位置。Jourkey-我看到了勾号,这是您正在寻找的吗?