For some reason this is not checking validation and is allowing me to
enter empty fields in both title and body.
Code for model/cont/view is below. I'm using cake 1.2.5
Any pointers would be muchly appreciated
// model
class Post extends AppModel {
var $name = 'Post';
var $validate = array(
'title' => array(
'required' => VALID_NOT_EMPTY,
'length' => array( 'rule' => 'validateLength', 'min'
=> 5, 'max' => 100 )
),
'body' => VALID_NOT_EMPTY
);
function validateLength($value, $params = array()) {
$valid = false;
$params = am(array(
'min' => null,
'max' => null,
), $params);
if (empty($params['min']) || empty($params['max'])) {
$valid = false;
} else if (strlen($value) >= $params['min'] && strlen($value)
<= $params['max']) {
$valid = true;
}
return $valid;
}
}
//controller
class PostsController extends AppController {
var $name = 'Posts';
function index() {
$this->set('posts', $this->Post->find('all'));
}
function view($id = null) {
$this->Post->id = $id;
$this->set('post', $this->Post->read());
}
function add() {
if (!empty($this->data)) {
// We don't do any real saving, we just validate the model
if ($this->Post->validates() && $this->Post->save($this-
>data)) {
$this->Session->setFlash('Your post
has been saved.');
$this->redirect(array('action' =>
'index'));
}
}
}
function delete($id) {
$this->Post->delete($id);
$this->Session->setFlash('The post with id: '.$id.'
has been deleted.');
$this->redirect(array('action'=>'index'));
}
function edit($id = null) {
$this->Post->id = $id;
if (empty($this->data)) {
$this->data = $this->Post->read();
} else {
if ($this->Post->save($this->data)) {
$this->Session->setFlash('Your post
has been updated.');
$this->redirect(array('action' =>
'index'));
}
}
}
}
// add view
<h1>Add Post</h1>
{javascript func=link url="/tiny_mce/tiny_mce.js" assign=""
__show_call=""}
{assign_assoc var='error' value='error=>Please specify a valid body'}
{form func='create' assign='' __show_call=false}
{form func=input fieldName=Title class="test" size="30" assign=""
__show_call=""}
{form func=label fieldName=Body assign="" __show_call=""}
{form func=textarea fieldName=Body class="test" size="30" assign=""
__show_call="" error=$error}
{form func='submit' fieldName=Submit assign='' __show_call=false}
{form func='end' fieldName=Submit assign='' __show_call=false}
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"CakePHP" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---