【问题标题】:Symfony2 RestBundle unable to get POST paramSymfony2 RestBundle 无法获取 POST 参数
【发布时间】:2014-04-03 03:27:28
【问题描述】:

我扩展了一个 FOSRestController 并尝试接收 POST 请求,但我无法获取参数,并且对该 API 端点的所有请求都会导致错误:

Controller MapmsisdnController::postMapmsisdnAction() requires that you provide a value for the $deviceId argument (because there is no default value or because there is a non optional argument after this one). (500 Internal Server Error)

这是我的班级和注释

class MapmsisdnController extends FOSRestController
{
    /**
     * Map a deviceid to msisdn
     * @ApiDoc(
     *  resource = true,
     *  description = "Map an msisdn for a single deviceid",
     *  statusCodes = {
     *      200 = "Returned when successful",
     *      500 = "Internal Server Error"
     *  }
     * )
     * @Post("/mapmsisdn")
     * @param type $deviceId
     * @param type $msisdn
     */
    public function postMapmsisdnAction($deviceId, $msisdn)
    {
        $test = true;
        if ( $test ) {
            $result = array(
                "code" => 200,
                "message" => "ok",
                "deviceId" => $deviceId,
                "msisdn" => $msisdn
            );
            $serializer = $this->container->get('jms_serializer');
            $ret = $serializer->serialize($result, 'json');
            return new Response($ret);
        }
    }
}

【问题讨论】:

    标签: php symfony fosrestbundle


    【解决方案1】:

    在注解中,你应该指定@Post,并使用@RequestParam 像这样指定你的参数:

    @Post("/mapmsisdn")
    @RequestParam(name="deviceId", requirements="\d+", default="", description="Device ID.")
    @RequestParam(name="msisdn", requirements="\d+", default="", description="MSISDN.")
    

    然后你可以像这样检索参数:

    $request = $this->getRequest();
    $request->get('deviceId');
    $request->get('msisdn');
    

    @RequestParam 是这样的:

    use FOS\RestBundle\Controller\Annotations\RequestParam;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-12
      • 1970-01-01
      • 2013-06-19
      • 2018-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多