2016-03-03 80 views
0

以下是我的模型功能已在工作... 我需要验证名称字段。名称字段验证不起作用在cakephp

当我提交空白表格.....表单显示输入组合名称。

当我在名称字段中输入数值时,窗体显示输入有效的项目组合名称。

但是当我提交空白表单时,表单不显示任何名称字段的消息。

当我在名称文本框中输入数字值并提交时,它会正确显示消息。

请帮我做两个规则工作的名称字段。

所以建议我如何实现这一点。

<?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' 
    ),);*/ 


    } 
?> 

回答

0

试试这个

<?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

试试这个代码:

<?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." 
      ),  
     );