Suk*_*rob 6 rest symfony fosrestbundle
这是我的配置文件:
// app/config/config.yml
fos_rest:
body_listener:
array_normalizer: fos_rest.normalizer.camel_keys
Run Code Online (Sandbox Code Playgroud)
我使用的是最新版本的FOSRestBundle:
// composer.json
"friendsofsymfony/rest-bundle": "dev-master"
Run Code Online (Sandbox Code Playgroud)
这些是我的帖子参数:
// Post parameters
"first_name": "First name",
"last_name": "Last name",
"phone": "Phone"
Run Code Online (Sandbox Code Playgroud)
这是我的控制器:
/**
* @ApiDoc(
* resource=true,
* description="Create a new user"
* )
*
* @View()
*/
public function postAction(Request $request)
{
$user = new User();
$form = $this->createForm(new UserType(), $user);
// Request post parameters are not camel cased
// Parameters expected: firstName, lastName, phone
// Parameters got: first_name, last_name, phone
$form->handleRequest($request);
if ($form->isValid()) {
return 'valid';
}
return $user;
}
Run Code Online (Sandbox Code Playgroud)
问题:
请求发布参数不是驼峰式的.我得到first_name,last_name,phone而不是firstName,lastName,phone.我做了同样的https://florian.voutzinos.com/blog/handling-camelcase-with-fosrestbundle/.但是,它没有用.我错过了什么吗?有任何想法吗?谢谢.
这是JMSSerializer重命名您的字段名称.尝试改变它的命名策略.将其放入您的服务配置文件中
XML
<services>
<service id="jms_serializer.naming_strategy" class="JMS\Serializer\Naming\IdenticalPropertyNamingStrategy" />
</services>
Run Code Online (Sandbox Code Playgroud)
阳明海运
services:
jms_serializer.naming_strategy:
class: 'JMS\Serializer\Naming\IdenticalPropertyNamingStrategy'
Run Code Online (Sandbox Code Playgroud)
小智 1
你的配置中有错字吗?您在 array_normalizer 之前错过了四个空格,因为它是 body_listener 的属性
fos_rest:
body_listener:
array_normalizer: fos_rest.normalizer.camel_keys
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1598 次 |
| 最近记录: |