我有检查信用卡是否有效的功能。如果是,则继续从表单输入详细信息到数据库中。但如果不是,则显示传递的消息。
问题在于,如果信用卡存在问题,则会传递消息,而不是退出该功能,以便它不会尝试继续并从表单添加数据,而是添加数据。
我不知道该如何制止。以下代码是为我编写的,似乎创建了一个新的调度并尝试返回上一个函数确认。
function confirm() {
//This view contains the form, when user submits they go to checkout view
if (isset($data)){$this->data = $data;}
$this->set('redirect_to', 'checkout');
}
function checkout(){
if(!empty($this->data['User']['card_number'])){
$check_card = $this->BillingValidation->validate_card($this->data['User']['card_number']);
if($check_card['valid']!=false){
// card is valid !
} else {
$msg[0][] = $check_card['error'];
$flashmsg = implode('<br />',$msg[0]).implode('<br />',$msg[1]);
$this->Session->setFlash(__($flashmsg,
true),'default', array('class' => 'flash-message-success'));
//if credit card is invalid go back to confirm view
$this->autoRender = false;
$d = new Dispatcher();
$d->dispatch(array("controller" => "res", "action" => "confirm"),array("data" => $this->data));
}
}
//if credit card ok then continues to process form
}
答案 0 :(得分:0)
我使用了exit(),这似乎有用