0
votes

Below is my model function which is already working... i need to validate name field.

when i submit blank form.....the form display Enter portfolio name.

and when i enter numeric value in name field the form display Enter valid portfolio name.

but when i submit the blank form the form does not display any message for name field.

and when i enter the numeric value in name textbox and submit then it display message properly.

please help me to make both the rule working for name field.

so plz suggest me how to implement this.

<?php
class Portfolio extends AppModel{
   var $name = 'Portfolio';
   var $validate = array(
            'name' => array(
            'rule' => 'notEmpty',
            'message' => "Enter portfolio name."
         ),
            'name' => array(
            'rule'    => '/^[a-zA-Z]*$/',
            'message' => "Enter valid portfolio name."
         ),
            'job_title' => array(
            'rule' => 'notEmpty',
            'message' => "Enter your quote request."
         ),
            'freight_mode'=> array(
                     'rule'=>'notEmpty',
                     'message'=>"Enter your frieght mode."
         ),
            'expected_transport_growth' => array(
            'rule' => 'notEmpty',
            'message' => "Select expected transport growth."
         ),
            'current_annual_spend' => array(
            'rule' => 'notEmpty',
            'message' => "Select current annual spend."
         ),
            'expected_annual_spend' => array(
            'rule' => 'notEmpty',
            'message' => "Select expected annual spend."
         ),
            'quotes_expiry' => array(
            'rule' => 'notEmpty',
            'message' => "Enter deadline on quote request."
         ),
             'quotes_required' => array(
            'rule' => 'notEmpty',
            'message' => "Select quote requrest required."
         ),
            'contract_start_date' => array(
            'rule' => 'notEmpty',
            'message' => "Enter contract start date." 
        ),     
   );

   /*var $belongsTo = array(
        'SupplierUquotes'   => array(
        'className'     => 'SupplierUquotes',
        'foreignKey'    => 'id'
    ),);*/


  }
?>
2

2 Answers

0
votes

Try this

<?php
public $validate = array(
    'name' => array(
        'notEmpty' => array(
            'rule' => 'notEmpty',
            'message' => "Enter portfolio name."
        ),
        'valid' => array(
            'rule' => '/^[a-zA-Z]*$/',
            'message' => "Enter valid portfolio name."
        )
    )
);
?>
0
votes

Try this code:

<?php
    class Portfolio extends AppModel{
       var $name = 'Portfolio';
       var $validate = array(
                'name' => array( // here 'name' is the field name to be validated
                'notEmpty'=>array( // here 'notEmpty' is user defined rule name, it should not be "rule" which is a cakephp reserved word, I think
                'rule'=>'notEmpty', // here 'notEmpty'  is the actual rule applied on the field 'name'
                'message'=>'Enter portfolio name.'
                ),
                'validName'=>array( // here 'validName' is another user-defined rule name. It should be different for a particular field.
                'rule'=>'/^[a-zA-Z]*$/',
                'message'=>'Enter valid portfolio name.'
                )
                ),

                'job_title' => array(
                'rule' => 'notEmpty',
                'message' => "Enter your quote request."
             ),
                'freight_mode'=> array(
                         'rule'=>'notEmpty',
                         'message'=>"Enter your frieght mode."
             ),
                'expected_transport_growth' => array(
                'rule' => 'notEmpty',
                'message' => "Select expected transport growth."
             ),
                'current_annual_spend' => array(
                'rule' => 'notEmpty',
                'message' => "Select current annual spend."
             ),
                'expected_annual_spend' => array(
                'rule' => 'notEmpty',
                'message' => "Select expected annual spend."
             ),
                'quotes_expiry' => array(
                'rule' => 'notEmpty',
                'message' => "Enter deadline on quote request."
             ),
                 'quotes_required' => array(
                'rule' => 'notEmpty',
                'message' => "Select quote requrest required."
             ),
                'contract_start_date' => array(
                'rule' => 'notEmpty',
                'message' => "Enter contract start date." 
            ),     
       );