PHP Slim和PUT请求
我正在做一个API,我在使用PUT方法时遇到了麻烦,我已经毫无问题地完成了GET和POST方法,但现在我的问题是我无法获得PUT参数,我现在太疯狂了 我的代码:PHP Slim和PUT请求,php,http,slim,Php,Http,Slim,我正在做一个API,我在使用PUT方法时遇到了麻烦,我已经毫无问题地完成了GET和POST方法,但现在我的问题是我无法获得PUT参数,我现在太疯狂了 我的代码: $app->put(API_ROUTE . '/group/:id', $authenticate($app), function ($id) use ($app) { $app->log->addDebug($app->request->getResourceUri(), [$app->reque
$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开发版说它):
请愿完成后我得到了什么
致命错误:调用上的成员函数setDescription()
第131行的E:\Dev\XAMPP\php\API\app\app.php中为空
第131行是$group->setDescription(…)
我试着用
- $app->request->put('description')
- $app->request()->put('description')
- $app->request->params('description')
同样的结果。我希望您能帮助我。检查,返回什么
$em->getRepository([…])->findOneByGroupname([…])
。
显然,它是false
或null
$group->setDescription()
仅在$groupWithSameName
(因此也包括$group
)为null/false时执行
我可以想象你忘了一个
<代码>如果(!$groupWithSameName){
您的代码中没有变量$group
。或者您根本没有变量,在这种情况下,您将无法在其上使用任何方法,或者您需要显示您在代码中分配它的位置。请显示完整代码。发布完整代码,我使用的是原则,但我认为这无关紧要。正如我所说,其他方法正在使用h同样的风格,如果我用了错误的方式,我很抱歉。你读了吗?是的,我读了,但它对我不起作用。我设置了数据类型,如示例所示:(
groupname=aaa&description=aaa