注意(8):使用未定义的常量inList - 假设'inList'[CORE \ Cake \ Utility \ ClassRegistry.php,第168行]
这个通知一直困扰着我一段时间知道,而且我不知道如何解决它..它之前没有真正影响我的项目,因为它只是一个通知消息,但现在,它不是让我展示一个我试图向用户显示的错误消息。
我有这个功能
public function validate_form(){
if($this->RequestHandler->isAjax()){
$this->request->data['Donor'][$this->params['form']['field']] = $this->params['form']['value'];
$this->Donor->set($this->data);
if($this->Donor->validates()){
$this->autoRender = FALSE;
}else{
$error = $this->Donor->validationErrors;
$this->set('error',$error[$this->params['form']['field']]);
}
}
}
以上是我的帖子请求提交的操作。然后执行以下操作以显示错误
if (error.length > 0) {
if ($('#name-notEmpty').length == 0) {
$('#DonorName').after('<div id="name-notEmpty" class="error-message">' + error + '</div>');
}
}else{
$('#name-notEmpty').remove();
}
问题是我新创建的div中没有相关错误...我从蛋糕中得到了通知8!如果有人知道为什么会这样,请感谢你对这个问题的帮助。
答案 0 :(得分:5)
<强> TLDR:强>
对'inList'执行项目范围内的查找并找到它周围没有引号的位置,或者,如果它应该是变量,则忽略它$
。
<强>解释强>
当您尝试使用不存在的PHP Constant时,会出现该错误。通常你实际上并没有尝试使用常量,而是忘记在某些内容中包装引号或忘记在变量之前添加$
。
<强>示例:强>
$name = "Dave";
echo name; // <-- WOAH THERE, there is no Constant called name (missing $)
$people = array('Dave' => 'loves pizza');
echo $people[Dave]; // <-- WOAH THERE, no Constant called Dave (missing quotes)
答案 1 :(得分:1)
您的代码中的其他地方很可能是使用'inList'作为数组键,但您没有引用它。
示例:$value = $myArray[inList];
它仍可在不引用inList的情况下工作,但它会导致您看到的通知消息。