Monday, May 30, 2011

Re: Can't validate model ?!

you should use

if(!empty($this->data)) {}

see baked code examples
as a beginner i strongly recommend that you use baking to create your
views and forms


On 29 Mai, 21:47, Niels <steni...@gmail.com> wrote:
> Hey everybody,
>
> I'm new to CakePHP, so don't shoot me if I made a stupid mistake.
> I'm having a problem validating my model I created. I think I done
> everything right, but it doesnt' work.
> I already took a look athttp://book.cakephp.org/view/1143/Data-Validation
> andhttp://book.cakephp.org/view/1182/Validating-Data-from-the-Controller.
> According to the cookbook I done it right but somehow I can't get my
> model to be validated.
>
> This is my code so far:
>
> My Link_controller.php
> <?php
>
> class LinksController extends AppController
> {
>         var $name = 'Links';
>         var $helpers = array('Html','Session');
>
>         function index()
>         {
>                 $this->set("links",$this->Link->find('all'));
>         }
>
>         function add()
>         {
>                 if(isset($this->data))
>                 {
>                         $this->Link->set($this->data);
>                         if($this->Link->validates())
>                         {
>                                 debug($this->data);
>                                 //if($this->Link->save($this->data))
>                                         $this->Session->setFlash('Data Saved Succesfully');
>                         }
>                 }
>
>         }
>
> }
>
> ?>
>
> If i don't type anything in my form my add method gets to the debug
> statement. Which I find strange because I use the isset($this->data).
> my debug print out looks like this :
> Array
> (
>     [Link] => Array
>         (
>             [link_name] =>
>             [link_url] =>
>             [link_category] =>
>             [link_img_url] =>
>         )
>
> )
>
> my link model
> <?php
> class Link extends AppModel
> {
>         var $name = 'Link';
>
>         var $validate = array(
>                 'link_name' => array(
>                         'rule' => 'notEmpty'
>                 ),
>                 'link_url' => array(
>                         'rule' => 'notEmpty'
>                 )
>         );
>
> /*      var $validate = array(
>                 'link_name' => array(
>                         'link_name_rule1' => array(
>                                 'rule' => 'alphaNumeric',
>                                 'message' => 'Link name can only contain numbers and letters'
>                         ),
>                         'link_name_rule2' => array(
>                                 'rule' => array('macLength',50),
>                                 'message' => 'Link name can maximum have 50 characters'
>                         ),
>                         'link_name_rule3' => array(
>                                 'rule' => 'notEmpty',
>                                 'message' => 'The field cannot be empty'
>                         ),
>                         'link_name_rule4' => array(
>                                 'rule' => 'isUnique',
>                                 'message' => 'The field must be unique'
>                         )
>                 ),
>                 'link_url' => array(
>                         'link_url1' => array(
>                                 'rule' => 'notEmpty',
>                                 'message' => 'The url cannot be empty'
>                         ),
>                         'link_url2' => array(
>                                 'rule' => array('url',true),
>                                 'message' => 'The given input isnot a valid url'
>                         )
>                 ),
>                 'link_category' => array(
>                         'link_category' => array(
>                                 'rule' => 'notEmpty',
>                                 'message' => 'The category cannot be empty'
>                         ),
>                         'link_category' => array(
>                                 'rule' => array('between',1,3),
>                                 'message' => 'The image category must be 1,2 or 3'
>                         )
>                 ),
>                 'link_img_url' => array(
>                         'link_img_url1' => array(
>                                 'rule' => 'notEmpty',
>                                 'message' => 'The image url cannot be empty'
>                         ),
>                         'link_img_url2' => array(
>                                 'rule' => array('extension',array('gif','jpeg','png','jpg')),
>                                 'message' => 'Please supply a valid image'
>                         )
>                 )
>         );*/}
>
> ?>
> I first tried some simple rules but they also don't seem to work.
>
> and my add view:
>
> <?php
> echo $form->create('Link');
> echo $form->input('link_name');
> echo $form->input('link_url');
> echo $form->input('link_category');
> echo $form->input('link_img_url');
> echo $form->end('Add Link');
> ?>
>
> I find it really strange could some  one please help me find this
> stupid bug ?
>
> Thanks a lot,
>
> cheers

--
Our newest site for the community: CakePHP Video Tutorials http://tv.cakephp.org
Check out the new CakePHP Questions site http://ask.cakephp.org and help others with their CakePHP related questions.


To unsubscribe from this group, send email to
cake-php+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/cake-php

No comments: