我正在用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');
}
}
你并没有尝试打印请求。你是想打印post数据,但是你的请求中没有发送任何post数据。
该 \Yii::$app->request->post();
返回$_POST数组中的数据。这个数组只从请求体中填充已经发送的数据。form-data
或 x-www-form-urlencoded
格式。
在postman中点击打开 身体 如果你想使用其他格式的请求,如json或xml,你必须从 "请求 "中读取它。php://input
. 你的代码中已经有了。
$post = (file_get_contents("php://input"));
所以试着打印 $post
而不是 $request
变量。但你仍然需要填写 身体 的一部分。
你在postman中设置的参数是 获取 params。这些是请求的url的一部分。例如,你可以像这样得到它们。
$request = \Yii::$app->request->get();
你在die函数中返回的是消息.
与此相反,你可以试试这种方式。
die(print_r($request, true));
例如:
public function actionCreate()
{
$request = Yii::$app->request->post();
die(print_r($request, true));
}
更好。
return print_r($request, true);
例子:
public function actionCreate()
{
$request = Yii::$app->request->post();
return print_r($request, true);
}
更好。
// 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();
}