0

私はコードを持っています

$str = '';
foreach ($_POST as $k => $v) {
    $str .= $k.'='.$v;
}

CHttpRequestで同じことをすることは可能ですか?そのための方法が見つかりませんでした。

最後にそれをmd5する必要があるので、セキュリティの問題はありません。

4

3 に答える 3

2

CHttpRequestが投稿データを取得することを目的としているとは思いません。Yii自体は$_POST変数を使用します。たとえば、Giiのデフォルトの出力は次のようになります。

public function actionCreate()
    {
        $model=new Model;

        // Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);

        if(isset($_POST['Model'])) //<- POST data var
        {
            $model->attributes=$_POST['Model']; //<- POST data var
            if($model->save())
                $this->redirect(array('view','id'=>$model->id));
        }

        $this->render('create',array(
            'model'=>$model,
        ));
    }
于 2013-03-26T10:51:42.713 に答える
0

CHttpRequestコンポーネントを拡張し、パブリックメソッドgetPost()を書き換えることができます

class HttpRequest extends CHttpRequest {
    public function getPost($name = null, $defaultValue = null) {
        $data = ($this->_isJsonEncoded()) ? \CJSON::decode($this-
            >getRawBody()) : $_POST;

        if (isset($data[$name])) {
            return $data[$name];
        } elseif (isset($defaultValue)) {
            return $defaultValue;
        } else {
            return $data;
        }
    }
}

config/main.phpファイルに新しいコンポーネントクラスを含めることを忘れないでください。

'request' => [
     'class' => 'application.components.HttpRequest',
 ],

これで、次の方法ですべての$_POSTデータを取得できます。

Yii::app()->request->getPost();
于 2017-07-28T19:29:03.427 に答える
0

getRestParams()を使用して配列を取得できます。

Yii::app()->request->getRestParams()

また

 Yii::$app->request->getRestParams()

参照: CHttpRequest-getRestParams

于 2019-01-08T12:05:06.197 に答える