2012-10-25 81 views
0

我是cakephp和1.3版本的新工作。我试图从控制器验证表单,但它不起作用。这里是我的控制器的动作代码: 控制器是cards_controller.php如需要nameOnCardcakephp验证与另一个模型

class CardsController extends AppController { 

      var $name = 'Cards'; 
      var $uses = array('Customfield','Customer','Parameter','Merchant','Merchantcard','Merchantcustomfield','Cardexist','Country','State','Customercontacts','Cardrenew'); 
      var $helpers = array('Html','Form','Ajax','Javascript'); 
      var $components = array('Session','RequestHandler','RequestHandler','Auth'); 

    function index() 
    { 

    } 



function renewCard() 
     { 

     if($_SESSION['Auth']['User']['id'] == "") 
        { 
         $this->redirect("../users/login"); 
        } 

      $this->loadModel('Cardrenew'); 

      $this->Cardrenew->set(array(
         "customer_id" =>$id, 
         "merchant_id" =>$this->data['Card']['merchant_id'], 
         "merchant_card_id" =>$this->data['Card'] 
             ));         

         if($this->Cardrenew->save()) 
         { 

         } 
     } 
    } 


and here is the model code : 



class Cardrenew extends AppModel 
    { 
    public $name = "prc_renewal_cards"; 
    var $validate = array(
    'merchant_id' => array(
    'nameRule2'=>array(
    'rule'=> array('check'), 
    'required' => true, 
    'message'=>'Card already exists.' 
    )), 

    'nameOnCard' => array(
    'alphaNumeric' => array(
    'rule' => '/^[a-z0-9 ]*$/i', // only 3 char (int or char , no spaces in string) 
    'required' => true, 
    'allowEmpty' => false, 
    'message' => 'Please enter alphabets and numbers only.' 
    )) 

    ); 

控制器不保存任何值。意味着验证发生,但它不显示任何错误消息。我在同一个控制器中使用不同型号名称的另一个动作应用了同样的技巧,它在那里工作得很好。那么这个动作会发生什么?

任何帮助表示赞赏。

感谢

回答

0

一对夫妇建议

public $ name =“prc_renewal_cards”;实际上应该是public $ name =“Cardrenew”;

显示您的视图代码将是有帮助的。