0

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

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

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

有可能吗?

4

1 回答 1

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
}

有什么不适合你的理由吗?

于 2012-08-13T23:05:39.930 回答