为什么我不能在YII rest api中使用postman打印请求?

问题描述 投票:1回答:1

我正在用Yii Plus制作rest API,当我尝试print_r请求(使用Postman)时,它是空的,有人能让我知道我做错了什么吗?

<?php
 namespace frontend\controllers;
 use Yii;
 use yii\rest\Controller;

 class ApiController extends Controller
{

  Const APPLICATION_ID = 'ASCCPE';
   private $format = 'json';


public function actionUserRegister()
{
   $request = \Yii::$app->request->post(); $post =  (file_get_contents("php://input")); 
   print_r($request);        
   die('sdw');  

}



}

輸出output in postman

php yii yii2 postman
1个回答
1
投票

你并没有尝试打印请求。你是想打印post数据,但是你的请求中没有发送任何post数据。

\Yii::$app->request->post(); 返回$_POST数组中的数据。这个数组只从请求体中填充已经发送的数据。form-datax-www-form-urlencoded 格式。

在postman中点击打开 身体 如果你想使用其他格式的请求,如json或xml,你必须从 "请求 "中读取它。php://input. 你的代码中已经有了。

$post = (file_get_contents("php://input")); 

所以试着打印 $post 而不是 $request 变量。但你仍然需要填写 身体 的一部分。

你在postman中设置的参数是 获取 params。这些是请求的url的一部分。例如,你可以像这样得到它们。

$request = \Yii::$app->request->get();

0
投票

你在die函数中返回的是消息.

与此相反,你可以试试这种方式。

die(print_r($request, true));

例如:

public function actionCreate()
{
    $request = Yii::$app->request->post();
    die(print_r($request, true));
}

enter image description here

更好。

return print_r($request, true);

例子:

public function actionCreate()
{
    $request = Yii::$app->request->post();
    return print_r($request, true);
}

enter image description here

更好。

// include the VarDumper class
\Yii::info(VarDumper::dumpAsString($request));
// output will be located in your app.log file

更多信息 print_r函数

例如:

public function actionCreate()
{
    return Yii::$app->request->getBodyParams();
}

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.