【问题标题】:Undefined variable: error - cakephp未定义的变量:错误 - cakephp
【发布时间】:2012-05-08 09:47:07
【问题描述】:

我从 youtube 视频中复制了这个表单验证,但它是使用 cakephp 1.3 编码的。所以我很难将它迁移到 2.1

CommentsController.php - 函数 validate_form()

function validate_form()
    {
        if($this->RequestHandler->isAjax())
        {
            $this->request->data['Comment'][$this->request['form']['field']] = $this->request['form']['value'];
            $this->Comment->set($this->request->data);
            if($this->Comment->validates())
            {
                $this->autorender = FALSE;
            }
            else
            {
                $error = $this->validateErrors($this->Comment);
                $this->set('error', $error[$this->request->params['data']['field']]);
            }
        }
    }

validate_form.ctp

<?php echo $error; ?>

错误:

Undefined variable: error [APP\View\Comments\validate_form.ctp, line 1]

为什么它是未定义的?请帮助我,如果我不这样做,我的老板会解雇我。我只是一个试用期的员工,一个 5 天大的初级网络开发人员

【问题讨论】:

  • 如果将$this-&gt;autorender = FALSE; 替换为$this-&gt;autoRender = FALSE; 是否有效? `
  • 错误消失了,但仍然没有输出。 -__-

标签: php jquery ajax cakephp


【解决方案1】:

使用您当前的代码,$error 仅在提交的表单未验证时设置,但在表单正确验证时未设置。在将其吐出之前,您需要在视图中添加一个检查,例如:

if(isset($error)) {
    echo $error;
} else {
    echo "Form is valid"; // Optionally echo something else if everything went OK.
}

但这不可能是你的全部观点?该位将仅显示验证错误(如果存在),而不会显示其他任何内容。

【讨论】:

  • this is used $('$textbox').after(然后这里是输出)。我应用了此代码,else 中的代码是唯一出现的代码。我认为错误的值没有设置。我该如何设置它
  • 如前所述,$error 只会在表单包含错误时设置,如果表单完全有效,则根本不会设置。这些“错误”应在相应的模型文件中指定为validation set。如果您特别希望 $error 设置任何一种方式,只需将 $this-&gt;set('error', null); 放在控制器的 if 子句中。
【解决方案2】:

我的猜测是评论正在验证,这就是为什么永远不会设置$error,您只需要在您的视图文件中检查这一点:

if(isset($error)) {
    echo $error;
}

【讨论】:

    【解决方案3】:

    另外你需要修改这行代码:

    $this->RequestHandler->isAjax()
    

    到:

    $this->request->is('ajax');
    

    由于 AjaxHelper 从 cakephp 2.x 开始贬值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      • 1970-01-01
      • 2015-01-25
      • 2018-05-03
      • 2014-04-25
      • 2021-04-10
      相关资源
      最近更新 更多