我正在关注 CakePHP 2.4.0 的 Lynda.com 课程,并且根据材料,以下代码应该可以工作,但由于后面的错误消息而失败:
public $validate = array(
'publication_name' => array(
'words' => array(
'rule' => array('custom', '/([\w.-]+ )+[\w+.-]/'),
'message' => 'The publication name can only contain letters, numbers and spaces.',
)
),
);
“preg_match():分隔符不能是字母数字或反斜杠 [CORE/Cake/Model/Validator/CakeValidationRule.php,第 281 行]”。
根据我的搜索,正则表达式应该像使用非字母数字分隔符 (/) 一样工作。至少可以说我很困惑。
我能够让它成功保存记录的唯一方法是删除自定义验证规则(由于各种原因,这不是所需的结果)。
关于为什么验证失败的任何见解?我已经将我的代码与作者的练习文件的代码进行了比较,并且不确定我(最有可能)在看什么......
提前感谢您的时间和洞察力。我真的很感激。
模型、视图和控制器的源代码:http: //tny.cz/0a995577