在数据验证失败时重定向到所需页面

时间:2012-08-13 20:15:19

标签: cakephp

在正常情况下,用户将详细信息输入表单字段并提交数据。在提交模型上验证数据,如果验证失败,用户将被重定向到具有错误通知的同一页面。

我有一个特殊的情况,如果验证失败,用户应该被重定向到指定的页面。我不想让用户被重定向到他发布数据的同一页面。

我查看了蛋糕文档。但无法找到任何提及重定向数据验证失败的内容。如果我使用来自控制器的验证,则可以实现。但这里我只是在模型中验证使用规则。

有可能吗?

1 个答案:

答案 0 :(得分:1)

默认情况下,如果数据验证失败,则用户不会在任何地方“重定向”。 Cake显示相同的视图,没有任何重定向。视图始终显示验证错误(如果存在)。因此,当然第一次加载表单时,没有错误,但在提交不正确的数据后,就会出现错误。但两次都是完全相同的视图,并且没有使用重定向。

要解决您的问题,请在此处修改示例:http://book.cakephp.org/2.0/en/models/saving-your-data.html您应该可以执行以下操作:

// If the form data can be validated and saved...
if ($this->Recipe->save($this->request->data)) {
    $this->Session->setFlash("Recipe Saved!");
    $this->redirect('/success-page');
} else {
    $this->Session->setFlash("We Have Errors!");
    $this->redirect('/my-custom-error-page'); // REDIRECT TO YOUR PAGE HERE
}

有什么理由对你不起作用吗?