所以我将这个字段命名为field_movie_cast_count
这是一个名为movie
的内容字段,所以我想要的是每当电影更新时(比如我添加另一个演员){{1 }字段也会更新。我已经使用此代码成功完成了它:
field_movie_cast_count
现在,我的老板告诉我,我不应该使用查询。那么,如何通过不使用数据库查询来实现这一目标呢?
是不是可以设置field_movie_cast_count [] ['value'] = $ count?我试过这个代码它不起作用。洛尔
或者我应该重新提出问题是否有其他方式显示计数?除了我的方式?因为也许我不明白我的老板。
答案 0 :(得分:2)
hook_nodeapi()
具有presave
操作,该操作在节点(和字段数据)提交到数据库之前调用。该操作的定义是:
节点已通过验证并即将保存。在将节点保存到数据库之前,模块可以使用它来更改节点。
您可以使用它来更新字段值,而无需手动命中数据库(无论如何都会被覆盖),如下所示:
function MYMODULE_nodeapi(&$node, $op) {
if ($op == 'presave' && $node->type == 'movie') {
$node->field_movie_cast_count[0]['value'] = count($node->field_movie_cast);
}
}