0

私は Cakephp を初めて使用し、バージョン 1.3 に取り組んでいます。コントローラーからフォームを検証しようとしていますが、うまくいきません。これが私のコントローラーのアクションコードです:コントローラーはcards_controller.phpです

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.'
    ))

    );

nameOnCard が必要なため、コントローラは値を保存しません。検証が行われることを意味しますが、エラー メッセージは表示されません。モデル名が異なる同じコントローラーの別のアクションに適用したのと同じもので、そこでは正常に動作します。では、この行動はどうなるでしょうか?

どんな助けでも感謝します。

ありがとう

4

1 に答える 1

0

いくつかの提案

public $name = "prc_renewal_cards"; $name = "Cardrenew"; 実際には public である必要があります。

ビューコードを表示すると役に立ちます。

于 2012-10-25T17:53:49.737 に答える