1

我在 Extjs4 plus yii 框架中工作并使用 MVC 结构。我打算将数据从 extjs4 发送到 yii 框架。我正在使用 post 方法将数据发送到服务器端,但我还没有成功在 yii 框架中显示数据。当我使用 get() 方法时,数据很容易访问到 yii 框架端。实际上我不想在 url 中显示数据,所以这就是我在 extjs4 中使用 post() 方法的原因。

这是我的一些代码:

  1. 模型文件:

    Ext.define('Bal.model.sn.UserModel', {
        extend: 'Ext.data.Model',
        //idproperty:'userId',//fields property first position pk. 
        fields: ['userId', 'firstName', 'middleName', 'lastName', 'languageId', 'primaryEmail', 'birthDate', 'password', 'securityQuestionId', 'securityQuestionAnswer', 'isMale', 'creationTime', 'ipAddress', 'confirmationCode', 'userStatusId', ]
    });
    
  2. 存储文件:

    Ext.define('Bal.store.sn.UserStore', {
        extend: 'Ext.data.Store',
        model: 'Bal.model.sn.UserModel',
        //autoLoad: true,
    
        proxy: {
            type: 'ajax',
            api: {
                read: 'http://localhost/balaee/Balaee/index.php/SocialNetworking/user/AuthenticateLogin',
                create: 'http://localhost/balaee/Balaee/index.php/SocialNetworking/user/AuthenticateLogin',
                //update: ,
                //destroy: ,
            }, //End of api
            extraParams: {
                hello: 'Inside store',
            },
            actionMethods: {
                create: 'POST',
                read: 'POST',
                update: 'POST',
                destroy: 'POST'
            },
            reader: {
                type: 'json',
                //root: ,
                //successProperty: ,
            }, //End of reader
            writer: {
                type: 'json',
                root: 'records',
            }, //End of writer
        } //End of proxy
    
    }); //End of store
    
  3. 我的控制器文件一些代码:

    var obj = this.getStore('sn.UserStore');
    obj.load({
        params: {
            hello: 'jitu'
        }
    });
    
  4. 这是我的 yii 框架控制器文件代码:

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

如何在 yii 框架中显示这个 hello 参数?请给点建议。

4

2 回答 2

1

我用这样的东西。如果 $_POST['PostDataName'] 为空 getPost($name) 返回 NULL

public function actionFoo()
{
   $data = Yii::app()->request->getPost('PostDataName');
}
于 2013-02-11T15:12:47.593 回答
-1

你得到什么错误。像 400、404、500 等。你的 YII 应用程序中是否启用了 CSRF。如果没有,那么应该这样做。

public function actioTest()
{
    $post = $_POST['hello'];
}

如果启用了 CSRF,那么您还必须在请求中传递 CSRF 值。

于 2013-02-09T04:55:08.817 回答