У меня есть приложение, построенное на 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.
Попытка дать вам начало:
//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,
));
}
Надеюсь, поможет