2

これを解決することはできません。コントローラーを unBinds で埋める必要はありません。検証が必要な賢者の支払いフォームがあります。したがって、次のようにセージモデルをセットアップしました。

class Sage extends AppModel {

    var $useTable = false;
    var $_schema = array(
        'CardHolderName'        =>array('type'=>'string', 'length'=>100), 
        'CardType'      =>array('type'=>'string', 'length'=>100), 
        'CardNumber'        =>array('type'=>'string', 'length'=>100), 
        'EndMonth'      =>array('type'=>'string', 'length'=>100), 
        'EndYear'       =>array('type'=>'string', 'length'=>100), 
        'BILLING_address_line_1'        =>array('type'=>'string', 'length'=>100), 
        'BILLING_city'      =>array('type'=>'string', 'length'=>100), 
        'BILLING_county'        =>array('type'=>'string', 'length'=>100), 
        'BILLING_country'       =>array('type'=>'string', 'length'=>100), 
        'BILLING_country'       =>array('type'=>'string', 'length'=>100), 
        'BILLING_post_code'     =>array('type'=>'string', 'length'=>100), 
        'DELIVER_name'      =>array('type'=>'string', 'length'=>100), 
        'DELIVER_address_line_1'        =>array('type'=>'string', 'length'=>100), 
        'DELIVER_city'      =>array('type'=>'string', 'length'=>100), 
        'DELIVER_county'        =>array('type'=>'string', 'length'=>100), 
        'DELIVER_country'       =>array('type'=>'string', 'length'=>100), 
        'DELIVER_post_code'     =>array('type'=>'string', 'length'=>100), 
        'CSV'       =>array('type'=>'string', 'length'=>3)

    );

    public $validate = array(
        'CardHolderName'=>array(
            'Please enter your name.'=>array(
                'rule'=>'notEmpty',
                'message'=>'Please enter your name.'
            )
        ),
        'CardType'=>array(
            'Card Type Select'=>array(
                'rule'=>'notEmpty',
                'message'=>'You must select a card type.'
            )
        ),
        'CardNumber'=>array(
            'Card Number Length'=>array(
                'rule'=> array('between', 16, 20),
                'message'=>'Card numbers are at least 16 numbers long.'
            ),
            'Not empty'=>array(
                'rule'=> 'notEmpty',
                'message'=>'Card Number is missing.'
            ),
            'Is a number' => array(
                'rule' => 'numeric',
                'message' => 'This must be a number (no spaces either).'
            )
        ),
        'EndMonth'=>array(
            'End Month Select'=>array(
                'rule'=>'notEmpty',
                'message'=>'No Month.'
            )
        ),
        'EndYear'=>array(
            'End Year Select'=>array(
                'rule'=>'notEmpty',
                'message'=>'No Year.'
            )
        ),
        'CSV'=>array(
            'Card Number Length'=>array(
                'rule'=> array('between', 3, 3),
                'message'=>'A CSV is 3 numbers long.'
            ),
            'CSV not empty'=>array(
                'rule'=>'notEmpty',
                'message'=>'Please enter your security code.'
            ),
            'Is a number' => array(
                'rule' => 'numeric',
                'message' => 'A CSV is 3 numbers long.'
            )
        )
    );
}

しかし、注文のインデックス ページ (そこには$this->paginate('Order');があります) に移動すると、次のようになります。

エラー: SQLSTATE [42S02]: ベース テーブルまたはビューが見つかりません: 1146 テーブル 'wr_shop.sages' が存在しません

SQL クエリ: SELECT COUNT(*) AS countFROM wr_shop. ordersAS OrderLEFT JOIN wr_shop. usersAS UserON ( Order. user_id= User. id) LEFT JOIN wr_shop. basketsAS BasketON ( Basket. order_id= Order. id) LEFT JOIN wr_shop. sagesそのまま Sage( Sage. order_id= Order. id) WHERE 1 = 1

誰かが私が見逃したことを教えてもらえますか?オンラインでどこにも答えが見つからないようです.

---UPADATE--- データを保持することはありませんが、「sages」テーブルを作成することで問題を一時的に修正しました。

4

2 に答える 2

0

Sage モデルが正しく読み込まれていません。代わりに AppModel インスタンスが使用されています。

パス、ファイル名、ファイル拡張子を確認してください: app/Model/Sage.php

于 2012-07-28T19:57:46.873 に答える