在正常情况下,用户在表单字段中输入详细信息并提交数据。提交模型验证数据,如果验证失败,用户将被重定向到带有错误通知的同一页面。
我有一个特殊的场景,如果验证失败,用户应该被重定向到指定的页面。我不希望用户被重定向到他发布数据的同一页面。
我浏览了蛋糕文档。但找不到任何提及数据验证失败重定向的内容。如果我使用来自控制器的验证,它可以实现。但这里我只在模型中使用规则进行验证。
有可能吗?
在正常情况下,用户在表单字段中输入详细信息并提交数据。提交模型验证数据,如果验证失败,用户将被重定向到带有错误通知的同一页面。
我有一个特殊的场景,如果验证失败,用户应该被重定向到指定的页面。我不希望用户被重定向到他发布数据的同一页面。
我浏览了蛋糕文档。但找不到任何提及数据验证失败重定向的内容。如果我使用来自控制器的验证,它可以实现。但这里我只在模型中使用规则进行验证。
有可能吗?
默认情况下,如果数据验证失败,用户不会被“重定向”到任何地方。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
}
有什么不适合你的理由吗?