0

我是 CakePHP 的新手,正在做我的第一个应用程序 - cakephp 教程中的第一个博客。一切都很好,但有一件事困扰着我。当我在模型中定义验证规则时,验证正在工作。

但是每个网络浏览器都会显示不同的消息。例如,Firefox 以捷克语显示消息(我来自捷克),chrome 显示“请填写此字段”和 Internet Explorer 显示“此字段不能留空”。所以我尝试翻译消息(通过添加参数消息进入模型验证)。这是有效的,但仅在 Internet Explorer 中,其他浏览器没有变化。有什么办法,如何在所有浏览器中都有相同的验证消息?

模型验证:

public $validate = array(
        'title' => array(
            'rule' => 'notEmpty',
            'message' => 'Please fill.....'
        ),
4

2 回答 2

0

我认为您正在谈论客户端验证消息。如果我是对的,您看到的消息是由您的浏览器创建的,并且是浏览器依赖的。Cake 只是通过在 input 标签中设置 required 属性来告诉浏览器该字段是必需的。

相反,蛋糕所做的实际验证是在服务器端进行的。如果您的浏览器向服务器发送数据,那么 cake 会验证数据并返回错误消息

于 2014-01-13T14:47:01.477 回答
0

有两个检查到位。第一个(您看到的那个)是客户端的检查。输入字段有一个必需的参数。所以浏览器知道该字段不能为空,并说比它的语言。到目前为止,没有任何东西发送到服务器。填写并发送表单后,第二个检查就位,即 cakephp 验证。

试试这个:

    'title' => array(
        'kosher' => array(
            'rule' => 'email',
            'message' => 'Please make sure your email is entered correctly.'
        ),
        'required' => array(
            'rule' => 'notEmpty',
            'message' => 'Please enter your email.'
        )

然后你会看到:1)如果你什么都不输入,那么会出现浏览器消息(客户端),2)如果你输入一些文本,不是电子邮件,那么就会出现上面的消息('请输入您的电子邮件。')

于 2014-01-14T05:14:46.630 回答