1

私はextjs + Yiiで働いています。クライアント側の機能は yii で設計され、サーバー側の機能は extjs で設計されています。extjsコントローラーでは、ストアを動的に生成し、そのプロキシを設定し、ストアのsync()メソッドを使用するコードを記述しました。

 review:function()
    {  var reviewQuestionStore=Ext.create('Balaee.store.qb.QbqnsStore');
        proxy=reviewQuestionStore.getProxy();
        Ext.apply(proxy.api,{
            read:'http://127.0.0.1/s_balaee/Balaee/index.php/QuestionBank/Qbpaper/ReviewQuestionPaper',
            create:'http://127.0.0.1/s_balaee/Balaee/index.php/QuestionBank/Qbpaper/ReviewQuestionPaper',
        });
        Ext.apply(proxy.writer,{
            type:'json',
            root:'records'
        });

        Ext.apply(proxy.reader,{
            type:'json',
            root:'questions'
        });
        var getdata=this.getLocalvalue();
            UserId=getdata.data.userId;

        //Using sync method
        var check =Ext.create('Balaee.model.qb.QbqnsModel',{
                    questionPaperNo:Paperno,
                    userId: UserId,
                });
        reviewQuestionStore.add(check);
        reviewQuestionStore.sync();  
}

そのため、正しく機能しています。そして、json形式でデータを送信します-

{"records":{"userId":"5","firstName":"abc","middleName":"","lastName":"","languageId":"","primaryEmail":"sdf@sdf.dfg","birthDate":"","password":"","securityQuestionId":"","securityQuestionAnswer":"","isMale":"","creationTime":"","ipAddress":"","confirmationCode":"","userStatusId":"","question":"","id":null}}

今、私は yii コントローラー関数でこのデータをキャッチしたいと考えています。私は試してみました-

 $postData = json_decode(file_get_contents("php://input"), true); 
      $clientData = $postData['records']; 

フィールドにアクセスするには、$clientData['firstName'] を使用していますが、機能していません。Extjs の store sync() メソッドを介して送信される Yii でデータをキャッチする方法。

4

1 に答える 1

1

標準の Yii Json デコードを使用します。配列が作成されます

$data=  CJSON::decode(file_get_contents("php://input"));
于 2013-03-15T06:25:41.283 に答える