Я делаю API, и у меня возникают проблемы с методом PUT, я без проблем выполнял методы GET и POST, но теперь моя проблема в том, что я не могу получить параметры PUT, и я так сумасшедший сейчас.PHP Slim и PUT request
Мой код:
$app->put(API_ROUTE . '/group/:id', $authenticate($app), function ($id) use ($app) {
$app->log->addDebug($app->request->getResourceUri(), [$app->request->getMethod()]);
$em = GetEntityManager();
$group = $em->getRepository('Api\Entity\Group')->findOneById(mb_convert_encoding($id, 'ISO-8859-1', 'UTF-8'));
$groupname = $app->request()->params('groupname');
$description = $app->request()->params('description');
if($group){
if(!isset($groupname) || !isset($description)){
$app->outputData(new HTTP_Status(400, 'Bad request'));
} else{
$groupWithSameName = $group = $em->getRepository('Api\Entity\Group')->findOneByGroupname(mb_convert_encoding($groupname, 'ISO-8859-1', 'UTF-8'));
if($groupWithSameName){
$app->outputData(new HTTP_Status(400, 'Bad request'));
}
else{
$group->setDescription($description);
$group->setGroupname($groupname);
$em->persist($group);
$em->flush();
$app->outputData(new HTTP_Status(203, 'Bad request'));
}
}
} else{
$app->outputData(new HTTP_Status(404, 'Not Found'));
}
})->conditions(array('id' => '\d+'))
->name('put_group');
Мое тело петиция (Mozilla Dev издание говорит об этом):
groupname=aaa&description=aaa
И что я получаю, когда заявление сделано
неисправимая ошибка: Вызов функции-члена setDescription() на null in E: \ Dev \ XAMPP \ PHP \ API \ приложение \ app.php на линии
линии 131 составляет $ группы-> setDescription (...);
Я пытался использовать
$ app-> request-> положим ('описание');
$ app-> request() -> put ('description');
$ app-> request-> params ('description');
с таким же результатом. Я надеюсь, что вы можете мне помочь.
Что такое '$ group'? – vps
У вас нет переменной '$ group' в вашем коде. Либо у вас его вообще нет, и в этом случае вы не сможете опускать какие-либо методы на нем, или вам нужно показать, где в вашем коде вы его назначили. –
Пожалуйста, показать полный код. – vps