我是Symfony4的新手,所以也许这是一个菜鸟问题。但无法确定 出来。
我正在尝试使用ajax调用注册用户:
this.form.post('/register').then((response) => {
console.log(response);
});
然后在symfony中,我的控制器方法如下:
/**
* @Route("/register", name="register", methods={"POST"})
* @param Request $request
* @param UserPasswordEncoderInterface $passwordEncoder
* @return JsonResponse
*/
public function register(Request $request, UserPasswordEncoderInterface $passwordEncoder)
{
$user = new User();
// encode the plain password
$user->setPassword(
$passwordEncoder->encodePassword(
$user,
$request->request->get('password')
)
);
$user->setEmail($request->request->get('email'));
$user->setName($request->request->get('name'));
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($user);
$entityManager->flush();
return $this->json(['success' => 'User created']);
}
问题在于数据始终为空。数据已正确发送。当我在控制器中添加响应时,会看到以下信息:
我的标题等如下:
请求有效负载如下:
答案 0 :(得分:0)
您需要在后端侧创建一个表单类型以验证您的新注册用户,请选中此documentation。不要忘记也要更新控制器。
答案 1 :(得分:-1)
必须在树枝上定义
aws s3 rb s3://bucket-name --force
在您的js中,您可以像这样使用ajax帖子:
<script>
let registerPath = "{{ app.request.getSchemeAndHttpHost() ~ path('register') }}";
</script>
希望可以帮助您:)