我是很新的Yii 2,但這裏有雲:的Yii 2設置控制器接受JSON請求
我試圖做到的是建立一個控制器,只需在發佈到任何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(etc)這樣的東西,但我不確定我需要返回的視圖。
感謝您的幫助,您可以提供
地塊不能從您的文章清楚一樣,1 )json數據來自哪裏2)您打算如何處理它3)處理數據後會發生什麼? ?? –
看看這裏的「enable-json-input」部分:http://www.yiiframework.com/doc-2.0/guide-rest-quick-start.html#enabling-json-input - 即使你沒有建立一個API本身,你應該能夠使用那裏的例子去做你所描述的。 – ldg
道歉,只需提及: 數據將從另一臺服務器(白名單IP)上的另一個腳本發佈到此頁面/ URL。我發現後面的潛在問題是數據無法發佈到此操作,我通過啓用CSRF驗證來修復: $ this-> enableCsrfValidation = false; – user3798442