【问题标题】:How can I pass validationErrors from controller to a view?如何将validationErrors 从控制器传递到视图?
【发布时间】:2013-08-16 13:33:07
【问题描述】:

我已经在我的UsersController 中设置了validationErrors 用于登录:

public function login() {
    if ($this->request->is('post')) {
        $this->User->set($this->request->data);
        if ($this->User->validates() && $this->Auth->login()) {
            $this->set('ui', $this->Auth->user('id'));
            $this->Session->setFlash(__('Loged in!'), 'flash_success');
            $this->redirect($this->Auth->redirect());
        } else {
            $errors = $this->User->validationErrors;
        }
    }

}

现在我如何在我的视图中使用$error 或作为要在我的表单上方列出的元素?

请帮助我搜索了很多,但答案是针对旧的 CakePHP,我使用的是 CakePHP 2.3.8。

【问题讨论】:

    标签: php cakephp-2.3


    【解决方案1】:

    验证错误自动出现在视图中

    在视图中获取验证错误不需要任何操作,因为它们是a property of the view class。可以通过以下方式简单地检查它们:

    debug($this->validationErrors);
    

    在视图中。

    但您可能不需要访问它们

    但请注意,需要直接查看此属性是不正常的。使用表单助手错误会自动显示,也可以generate errors individually

    if ($this->Form->isFieldError('email')) {
        echo $this->Form->error('email');
    }
    

    【讨论】:

    • 你看我想在 CakePHP 2.3 中制作类似this tutorial 的东西,我没有将它用于登录表单,它是一个产品表单。你能帮我解决这个问题吗?或者您至少可以更具体地了解我如何使用此isFieldError 将所有验证错误显示为视图中的列表(例如表单上方)。如果这个问题听起来很愚蠢,我深表歉意。
    • 如果您想按照链接的教程进行操作 - 只需将 $errors 替换为 $this->validationErrors。请注意,这是一个二维数组。
    • 顺便说一句 - 教程中的代码将“正常工作” - 无论您使用的是什么版本的蛋糕。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 2016-12-28
    • 1970-01-01
    相关资源
    最近更新 更多