0

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を使用すると、応答が速くなりますが、一部のアクションが妨げられる可能性があります。

生死の問題ではありませんが、頻繁に使用するため、正しい構文を理解したいと考えています。

4

2 に答える 2

1

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-14T07:35:37.017 に答える
1

スイッチケースを使う

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;

         }
}

または、さらにケースを追加することもできます。

于 2013-03-14T07:22:19.860 に答える