我有一个展示艺术家绘画的网站。在每个绘画页面上都有一个名为“相关绘画”的部分。这是一个相关领域,为管理员提供了勾选其他相关绘画的能力。
我想默认勾选同一位艺术家的画作,所以管理员不必这样做。我最初做了这个并且它有效,但显然只勾选了一幅画:
return array(
0 => array('nid' => '278')
);
然后我尝试了这个,它在模板中工作,即它以正确的格式生成一个数组:
$artist_nid = $node->field_artist[0]["nid"];
$artist_paintings = node_load($artist_nid)->field_painting_nodes[0] ["items"];
$a = array();
foreach ($artist_paintings as $painting) {
$a[] = array('nid' => $painting["nid"]);
}
但这在调用时不起作用,我收到错误:
warning: Invalid argument supplied for foreach() in /home/will/sites/modernprints/www/sites/all/modules/cck/content.module(2220) : eval()'d code on line 4.
我猜测$ node不存在或在该上下文中有什么东西?哪些变量可用?
答案 0 :(得分:0)
我刚刚意识到我正在尝试做的事情是完全有缺陷的 - 当添加新画作时节点还不存在,所以你无法得到艺术家和艺术家的画作。
如果用户先保存它,它可能会有效,但它不是很方便。
正确执行此操作的唯一方法是使用javascript,即在用户选择艺术家选择相关绘画复选框后触发事件。