Как изменить формат запроса формы на формат json

1

У меня есть приложение, построенное на Yii 1.1. У меня проблемы с 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.

  • 0
    Это странная ситуация, которую вы описываете. Если у вас есть $ _POST, это означает, что ввод php: // был прочитан и обработан (POST содержится в вводе php: // или в теле запроса). Это означает, что вы не можете отправлять данные POST и JSON одновременно, кроме случаев, когда данные JSON заключены в переменную POST ...
  • 0
    так как я могу изменить эти ошибки, потому что я действительно новичок в этом
Показать ещё 2 комментария
Теги:
forms
yii

1 ответ

1

Попытка дать вам начало:

//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,
    ));
}

Надеюсь, поможет

  • 0
    запрос не равен нулю, но JSON
  • 0
    также, когда я дам дамп запроса, он не выводит JSON, но некоторый набор записок
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню