【发布时间】:2017-03-31 11:06:23
【问题描述】:
我正在使用 cakePHP 2.x。我正在尝试使用空布局渲染视图。视图应该只包含一个从动作控制器返回的字符串,没有 html 代码。 代码如下:
public function checkout(){
$ref =null;$act=null;$par=null;
$this->layout = false;
//$this->render(false);
//$priceCTP = $this->Session->read('priceCTP');;
$priceCTP = $this->getPrice();
//var_dump(session_save_path());
if (isset($this->params['url']['Reference'])) {
$ref = $this->params['url']['Reference'];
}
if (isset($this->params['url']['Action'])) {
$act = $this->params['url']['Action'];
}
if (isset($this->params['url']['Param'])) {
$par = $this->params['url']['Param'];//$_GET['Param'];//this->request->params['named']
}
switch ($act) {
case "DETAIL":// accéder à la base et récuperer le montant
echo "Reference=".$ref."&Action=".$act."&Reponse=".$priceCTP;
break;
case "ERREUR": // accéder à la base et mettre à jour l’état de la transaction
echo "Reference=".$ref. "&Action=".$act. "&Reponse=OK";
break;
case "ACCORD": // accéder à la base, enregistrer le numéro d’autorisation (dans param)
echo "Reference=".$ref. "&Action=".$act. "&Reponse=OK";
break;
case "REFUS": // accéder à la base et mettre à jour l’état de la transaction
echo "Reference=".$ref. "&Action=".$act. "&Reponse=OK";
break;
case "ANNULATION": // accéder à la base et mettre à jour l’état de la transaction
echo "Reference=".$ref. "&Action=".$act. "&Reponse=OK";
break;
}
}
这个网址上的结果(http://mydomain/orders/checkout?
Reference=123&Action=DETAIL&Param=)
"Reference=123&Action=DETAIL&Repon"
rather than
"Reference=123&Action=DETAIL&Reponse=121,630" (works fine on localhost).
【问题讨论】:
-
你是如何获取这个脚本的输出的?通过浏览器或 CURL 之类的客户端?
-
感谢您的快速回复。我正在通过浏览器对其进行测试。
-
使用
if( ! empty($priceCTP))保证变量$priceCTP不为空 -
@余家傲 谢谢指教
-
控制器动作不应该回显数据!您应该准备请求对象或使用(数据)视图。话虽如此,请确保您提供的详细信息是正确的,从您的问题来看,好像在
&Repon之后会切断输出(即不仅仅是缺少价格)?
标签: php cakephp cakephp-2.3