I’m new to cakePHP and I’ve made a simple form following some tutorial. On this html form I’ve used validation. Now the problem is that the validation is working but the message is not displaying what I want it to display. I tried the code below.
Model
public $validate = array(
'title' => array(
'title_required' => array(
'rule' => 'notEmpty',
'message' => 'This is required field'
),
'title_unique' => array(
'rule' => 'isUnique',
'message' => 'This should be unique title'
)
)
);
Controller
public function add() {
if ($this->request->data) {
if ($this->Post->save($this->request->data)) {
$this->Session->setFlash('Post has been added successfully');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('Error occured, Please try agan later!');
}
}
}
View
<h2>Add New Post</h2>
<?php
echo $this->Form->create('Post', array('action'=>'add'));
echo $this->Form->input('title');
echo $this->Form->input('body');
echo $this->Form->end('Create Post');
?>
The validation error which I’ve seen is not the message I mentioned in my controller.

That’s built-in browser validation.
Since 2.3 the HTML5 required attribute will also be added to the input based on validation rules.
Your
titlehas thenotEmptyrule, so Cake is outputting<input type="text" required="required" ..and your browser is triggering that message.
Edit: to override this behaviour, you can do:
or
When you submit the form, your model validation will fire.