これを解決することはできません。コントローラーを 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
count
FROMwr_shop
.orders
ASOrder
LEFT JOINwr_shop
.users
ASUser
ON (Order
.user_id
=User
.id
) LEFT JOINwr_shop
.baskets
ASBasket
ON (Basket
.order_id
=Order
.id
) LEFT JOINwr_shop
.sages
そのままSage
(Sage
.order_id
=Order
.id
) WHERE 1 = 1
誰かが私が見逃したことを教えてもらえますか?オンラインでどこにも答えが見つからないようです.
---UPADATE--- データを保持することはありませんが、「sages」テーブルを作成することで問題を一時的に修正しました。