如何在 CakePHP 中使用 beforeValidate() ?

发布于 2024-10-13 17:01:21 字数 307 浏览 2 评论 0原文

我有一个带有 URL 字段的表单。该字段的默认值为:http://。但该字段不是必需的。用户可以跳过它并提交表单。它不应该返回错误,因为这不是必需的,而且他们没有输入 URL。但现在确实如此,因为 http://.

我听说我可以使用 beforeValidate() 检查它是否是 http://,然后清除 URL 字段,从而允许我跳过错误消息。

但我不知道如何使用 beforeValidate()。我搜索了谷歌,但没有找到任何可行的例子。 beforeValidate() 的代码应该放在哪里?它是一个函数吗?如何从那里访问提交的表单数据?

谢谢。

I have a form with a URL field. The default value for this field is: http://. But the field is not required. The user can skip it and submit the form. It shouldn't return an error because it's not required and because they didn't enter a URL. But right now it does, because of the http://.

I heard I can use beforeValidate() to check if it's http://, and then clear the URL field, allowing me to skip the error message.

But I don't know how to use beforeValidate(). I searched Google, but I did not find any working examples. Where do I place the code for beforeValidate()? Is it a function? How do I access the submitted form data from there?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧话新听 2024-10-20 17:01:21

是的,beforeValidate() 是模型的一个函数。所以每个型号都有。你应该如何使用它:

class YourModel extends AppModel {
   function beforeValidate(){
      if($this->data['YourModel']['url_field'] == 'http://'){
         unset($this->data['YourModel']['url_field']);
      }
      return true; //this is required, otherwise validation will always fail
   }
}

Yes, beforeValidate() is a function of the model. So every model has it. How you should use it:

class YourModel extends AppModel {
   function beforeValidate(){
      if($this->data['YourModel']['url_field'] == 'http://'){
         unset($this->data['YourModel']['url_field']);
      }
      return true; //this is required, otherwise validation will always fail
   }
}
挽梦忆笙歌 2024-10-20 17:01:21

不要将 http:// 硬编码到表单中,而是添加适当的 url 验证并使用以下内容允许空白

'allowEmpty' =>真的

instead of hard coding http:// into the form, add proper validation for urls and use the following to allow blanks

'allowEmpty' => true

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文