CakePHP通知(8)提出:使用未定义的常量inList - 假设'inList'

时间:2014-01-26 18:08:22

标签: php cakephp

注意(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!如果有人知道为什么会这样,请感谢你对这个问题的帮助。

2 个答案:

答案 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的情况下工作,但它会导致您看到的通知消息。