簡體   English   中英

如何將表單請求格式更改為json格式

[英]How to change form request format to json format

我有一個基於Yii 1.1的應用程序。 后端API出現問題。 就是這種情況。

我是API構建的新手,我受命構建項目的后端API。 現在,從前端提交表單時,我的技術主管說我應該將表單請求格式更改為JSON。 我對此一無所知。 我試圖在下面的代碼中使用file_gets_content('php://input') and json_decode ,但仍然無法正常工作。

        if (isset($_POST['TblTemplate'])) {
        //getting raw input of request
        var_dump($request = file_get_contents('php://input'));

        //decoding the JSON
        var_dump($input = json_decode($request, true));

        //passing input fields to model attributes
        $model->attributes = $input;

        //validating input fields (getErrors)
        if (!$model->validate()) {
            echo json_encode($model->getErrors());
        } else {
            //inserting (creating) template
            if(!$model->save()) {
                echo json_encode(['error' => 'Could not create template']);
            } else {
                echo json_encode(['success' => true]);
                exit();
            }
        }
    } else {
        $this->render('create',array(
            'model'=>$model,
        ));
    }

當我提交表格時,它給我的字段為空。 我對這個API東西很陌生,請幫忙。 另外當我運行var dump或請求它輸出時

string(156) "TblTemplate%5Bname%5D=Standard+Feedback+Request&TblTemplate%5Bemail%5D=gideon.a%40scopicsoftware.com&TblTemplate%5Bcontent%5D=I+am+a+new+template&yt0=Create" 

但是輸入的vardump返回null。

嘗試為您起步:

//getting raw input of request
$request = file_get_contents('php://input');

$json = json_decode($request);

if ($json !== null) {
    .... code ...
} else {
    $this->render('create',array(
        'model'=>$model,
    ));
}

希望能幫助到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM