Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii 2设置控制器以接受json请求_Php_Json_Yii2_Yii2 Basic App - Fatal编程技术网

Php Yii 2设置控制器以接受json请求

Php Yii 2设置控制器以接受json请求,php,json,yii2,yii2-basic-app,Php,Json,Yii2,Yii2 Basic App,我对Yii 2很陌生,但这里有: 我试图完成的是设置一个控制器,该控制器只需读取发布到它的任何json数据 我对Yii的工作原理有点困惑 到目前为止,我尝试的是设置一个名为ftest的控制器,看看是否可以让它返回一些json,这似乎是可行的: public function actionFTest(){ $request = Yii::$app->request; Yii::$app->response->format = \yii\web\Response:

我对Yii 2很陌生,但这里有:

我试图完成的是设置一个控制器,该控制器只需读取发布到它的任何json数据

我对Yii的工作原理有点困惑

到目前为止,我尝试的是设置一个名为ftest的控制器,看看是否可以让它返回一些json,这似乎是可行的:

 public function actionFTest(){
    $request = Yii::$app->request;
    Yii::$app->response->format = \yii\web\Response::FORMAT_RAW;
    $headers = Yii::$app->response->headers;
    $headers->add('Content-Type', 'text/json');

    $response = Yii::$app->response;
    $response->format = \yii\web\Response::FORMAT_JSON;
    $response->data = ['message' => 'Evan .. WHERE ARE YOU?'];

    //$notificationData = json_decode(file_get_contents("php://input"), true);

    //echo var_dump($notificationData);

}
这有点混乱,因为我一直在反复输入代码。我知道我通常应该返回类似$this->render(等)的内容,但我不确定需要返回什么作为视图

感谢您提供的任何帮助

这可能会有所帮助

 use Yii;
    use yii\web\Response;



    public function actionFTest()
    {
          Yii::$app->response->format = Response::FORMAT_JSON;
    }

Then after that just return a simple array like that:

    return ['param' => $value];
读这个
$format detail

从您的帖子中,很多事情都不清楚,例如,1)json数据来自哪里2)您打算用它做什么3)处理数据后会发生什么??请看这里的“启用json输入”部分:--即使您本身没有构建API,您也应该能够使用这里的示例来完成您所描述的工作。抱歉,只需提及:数据将从另一台服务器上的另一个脚本(白名单IP)发布到此页面/url。我发现这背后的根本问题是数据无法发布到此操作,我通过启用CSRF验证修复了此问题:$this->enableCsrfValidation=false;很高兴听到你说它有效。。享受:)@user3798442