You are here

使用hook_validate()来验证字段

老葛的Drupal培训班 Think in Drupal

当用户提交一个你节点类型的节点时,将会调用你模块中的钩子hook_validate()。因此,当用户提交该表单,来创建或者编辑一个笑话时,钩子hook_validate()将会查找joke_validate()函数,这样你就可以验证你的自定义字段中的输入了。在提交后,你也可以使用form_set_value()对数据做些修改。还可以使用form_set_error()来设置错误消息,如下所示:
/**
 * Implementation of hook_validate().
 */
function joke_validate($node) {
    // Enforce a minimum word length of 3 on punch lines.
    if (isset($node->punchline) && str_word_count($node->punchline) < 3) {
        $type = node_get_types('type', $node);
        form_set_error('punchline', t('The punch line of your @type is too short. You need at least three words.', array('@type' => $type->name)));
    }
}
 
    注意,你已经在hook_node_info()中为body字段定义了最小单词书目,而Drupal将自动对此进行验证。然而,punchline字段是你添加到该节点类型表单中的一个额外字段,所以你需要负责它的验证(加载、保存)。
 

Drupal版本: