请求

请求参数

要获取请求参数,你可以调用 request 组件的 yii\web\Request::get() 方法和 yii\web\Request::post() 方法。 他们分别返回 $_GET 和 $_POST 的值。例如,

$request = \Wii::$app->request;

$get = $request->get(); 
// 等价于: $get = $_GET;

$id = $request->get('id');   
// 等价于: $id = isset($_GET['id']) ? $_GET['id'] : null;

$id = $request->get('id', 1);   
// 等价于: $id = isset($_GET['id']) ? $_GET['id'] : 1;

$post = $request->post(); 
// 等价于: $post = $_POST;

$name = $request->post('name');   
// 等价于: $name = isset($_POST['name']) ? $_POST['name'] : null;

$name = $request->post('name', '');   
// 等价于: $name = isset($_POST['name']) ? $_POST['name'] : '';

获取 raw 数据

controlleraction 中可使用一下方法获取 POST RAW 数据:

// 获取 raw 数据 
$rawData = $this->getRawData();

请求方法

你可以通过 Wii::$app->request->method 表达式来获取当前请求使用的HTTP方法。 这里还提供了一整套布尔属性用于检测当前请求是某种类型。 例如,

$request = Yii::$app->request;

if ($request->isAjax) { /* 该请求是一个 AJAX 请求 */ }
if ($request->isGet)  { /* 请求方法是 GET */ }
if ($request->isPost) { /* 请求方法是 POST */ }
if ($request->isPut)  { /* 请求方法是 PUT */ }

验证提交参数

controlleraction 可方便通过 Validator 的验证方式对请求的数据进行验证:

public function actionInfo()
{
    // 获取提交参数
    $id = $this->request->get('id');

    // 提交数据验证
    $this->validateData(compact('id'), [
        // id 必须是大于1的数字
        [['id'], 'number', 'min' => 1]
    ]);

    // ...
}

results matching ""

    No results matching ""