PHP Slim和PUT请求

时间:2015-05-19 08:58:28

标签: php http slim

我正在做API并且我遇到了PUT方法的麻烦,我已经完成了GET和POST方法没有问题,但现在我的问题是我无法获得PUT参数和我&# 39;我现在太疯狂了。

我的代码:

$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 Edition说):

groupname=aaa&description=aaa

请愿书完成后我得到了什么

  

致命错误:调用成员函数setDescription()on   null E:\ Dev \ XAMPP \ php \ API \ app \ app.php 131

第131行是$ group-> setDescription(...);

我尝试使用

  • $ APP->请求 - >放('描述&#39);

  • $ APP->请求() - >放('描述&#39);

  • $ APP->请求 - > PARAMS('描述&#39);

同样的结果。我希望你能帮助我。

1 个答案:

答案 0 :(得分:0)

检查$em->getRepository([...])->findOneByGroupname([...])返回的内容。 显然,它是falsenull

如果$group->setDescription()(以及此$groupWithSameName)为null / false,则仅执行

$group

我可以想象你在if语句中忘记了!if(!$groupWithSameName){