Without looking at your data model, I can't say for sure, but it would seem like you may be breaking a rule that is implied by the table.
That said, you might want to add a message to your $validate like: 'last_name' => array( 'alphaNumeric' => array( 'rule' => 'alphanumeric', 'message' => 'Only letters and numbers for last name, please try again.' ), ) On Dec 17, 2:56 am, Oribium <viktor.richard...@gmail.com> wrote: > I am taking a look at cake 1.2, and I run into problems with the > validation > of form data. I took advantage of the console application to bake some > views, a model, and a controller based on an existing MySQL-database. > I > don't yet have a deep understanding of cake, and would happily welcome > hints and pointers which direction I should go. > > I am trying to post data from a form to a database. However, whatever > data > I post, I get redirected back to the form, where a label "This field > cannot > be left blank" is attached to all fields. For instance if I fill the > alphanumeric field "last_name" with "Jones" (without qoutes), I will > get > the error message: "This field cannot be left blank". Futhermore, > $this->validationErrors contains all fields and the same error > message. I > have verified that the correct data from the form are assigned to the > controller object's data array with Configure::write('debug', 3); > > The view is just a simple form like: > > echo $form->create('Lead'); > echo $form->input('last_name'); > echo $form->input('modified_user_id'); > ... quite a few more fields here ... > echo $form->end('Submit'); > > There are also a few form fields added with pure html code. These > fields > are not supposed to be posted to the database, neither be validated > with > the standard cake validation feature. > > In the model, there is nothing but "name" and the validation array. > > The model's validation array looks like: > > var $validate = array( > 'last_name' => array('alphanumeric'), > 'modified_user_id' => array('alphanumeric'), > --- quite a few more fields here --- > ) > > The controller's add function: > > function add() { > if (!empty($this->data)) { > if ($this->RequestHandler->isPost()) { > $this->Lead->create(); > $this->Lead->set($this->data); > if ($this->Lead->save($this->data)) { > $this->Session->setFlash(__('The Lead has been saved', true)); > $this->redirect(array('action'=>'index'));} else { > > $this->Session->setFlash(__('The Lead could not be saved. Please, try > again.', true)); > > } > } > } > } > > I also tried the following code in the controller: if > ($this->Lead->validates()) with the same result. > > PHP version: 5.1.6 > OS: Linux > > CakePHP version: > $Id: VERSION.txt 7692 2008-10-02 05:06:48Z nate $ > > libs/model/model.php version: > $Id: model.php 7690 2008-10-02 04:56:53Z nate $ --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to cake-php@googlegroups.com To unsubscribe from this group, send email to cake-php+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---