Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更改CakePHP 3.x验证错误消息_Php_Cakephp_Cakephp 3.x - Fatal编程技术网

如何更改CakePHP 3.x验证错误消息

如何更改CakePHP 3.x验证错误消息,php,cakephp,cakephp-3.x,Php,Cakephp,Cakephp 3.x,下面是CakePHP 3.x中用于PostsTable的验证函数: public function validationDefault(Validator $validator) { $validator ->add('id', 'valid', ['rule' => 'numeric']) ->allowEmpty('id', 'create'); $validator ->requirePresence

下面是CakePHP 3.x中用于
PostsTable
的验证函数:

public function validationDefault(Validator $validator)
{
    $validator
        ->add('id', 'valid', ['rule' => 'numeric'])
        ->allowEmpty('id', 'create');

    $validator
        ->requirePresence('title', 'create')
        ->notEmpty('title','Please fill Title field');

    $validator
        ->requirePresence('content', 'create')
        ->notEmpty('content','Please add a Content');

    return $validator;
}
add
视图中的表单为:

<?= $this->Form->create($post) ?>
<fieldset>
    <legend><?= __('Add Post') ?></legend>
    <?php
        echo $this->Form->input('title');
        echo $this->Form->input('content');
        echo $this->Form->input('category_id', ['options' => $categories]);
    ?>
</fieldset>
<?= $this->Form->button(__('Submit')) ?>
<?= $this->Form->end() ?>


为什么总是显示默认验证消息而不是
notEmpty
消息

问题已修复,我将
validationDefault(Validator$Validator)
重命名为
validationPost(Validator$Validator)
,我还在
PostsController
中添加了以下功能:

$post = $this->Posts->patchEntity($post, $this->request->data,['validate' => 'Post']);

问题已修复,我将
validationDefault(Validator$Validator)
重命名为
validationPost(Validator$Validator)
,我还在
PostsController
中进行了此修改,添加了以下函数:

$post = $this->Posts->patchEntity($post, $this->request->data,['validate' => 'Post']);

它可能触发了第一条规则,该规则没有自定义消息。尝试添加消息。我已经尝试添加自定义消息,但仍然无法正常工作,问题是什么?您看到的消息到底是什么?哪个领域?您正在提交哪些数据(如果有)?您是否已检查是否正在调用
validationDefault()
方法?另外,您使用的确切CakePHP版本是什么?当我单击提交按钮添加新帖子时,validationDefault()被调用,但我的自定义错误消息根本没有出现,每次默认的CakePHP错误消息显示为“请填写此字段”,我使用的是CakePHP-3-1-6问题已修复,我重命名为
validationDefault(Validator$Validator)
validationPost(Validator$Validator)
,我还在
PostsController add函数中做了这个修改:
$post=$this->Posts->patchEntity($post,$this->request->data,['validate'=>'post']));
它可能触发了第一条规则,该规则没有自定义消息。请尝试添加消息。我已经尝试添加自定义消息,但仍然不起作用,有什么问题吗?您看到的消息到底是什么?针对哪个字段?您提交了什么数据(如果有)?是否检查了
验证默认值()
method正在被调用?您使用的确切CakePHP版本是什么?当我单击submit按钮添加新帖子时,validationDefault()正在被调用,但我的自定义错误消息根本没有出现,每次默认的CakePHP错误消息显示“请填写此字段”,我使用cakephp-3-1-6修复了问题,我将
validationDefault(Validator$Validator)
重命名为
validationPost(Validator$Validator)
,我还在
PostsController add函数中做了此修改:
$post=$this->Posts->patchEntity($post,$this->request->data,['validate'=>post']);