我在YII中处理AJAX请求
public function actionSomeCheck()
{
if($_GET['foo'] == 'bar')
{
echo CJSON::encode(array('status'=>'ok'));
}
echo CJSON::encode(array('status'=>'error'));
}我需要添加刹车后产生的响应,但没有找到正确的语法。
它可以是:
public function actionSomeCheck()
{
if($_GET['foo'] == 'bar')
{
echo CJSON::encode(array('status'=>'ok'));
die();// Or exit
}
echo CJSON::encode(array('status'=>'error'));
die();
}或者:
public function actionSomeCheck()
{
if($_GET['foo'] == 'bar')
{
echo CJSON::encode(array('status'=>'ok'));
return false;
}
echo CJSON::encode(array('status'=>'error'));
return false;
}或者在最后一次回答之后没有任何休息。
使用die/exit可能会更快地返回响应,但可以防止某些操作。
这不是生死问题,而是要理解正确的语法,因为我会经常使用它。
发布于 2013-03-14 07:35:37
终止Yii应用程序的适当方法是:
Yii::app()->end();
这将在调用onEndRequest本身之前处理任何exit()事件。
请参阅:http://www.yiiframework.com/doc/api/1.1/CApplication#end-detail
补充澄清:
没有必要在请求结束时亲自调用Yii::app()->end;。该方法所做的就是处理onEndRequest事件,然后调用exit()。
然而,当您使用run()正常运行应用程序时,您会发现在应用程序正常终止之前,默认情况下会处理onEndRequest事件。
请参阅:http://www.yiiframework.com/doc/api/1.1/CApplication#run-detail
发布于 2013-03-14 07:22:19
使用开关盒
public function actionSomeCheck()
{
$data = $_GET['foo'];
switch($data)
{
case 'bar':
echo CJSON::encode(array('status'=>'ok'));
break;
default:
echo CJSON::encode(array('status'=>'error'));
break;
}
}或者你可以增加更多的案例。
https://stackoverflow.com/questions/15403168
复制相似问题