symfony 在获取后找不到 post 数据
symfony don't find post data after fetch
我正在尝试使用 twig 中的 fetch 发送 post 数据。但是我无法访问控制器中的那些变量。
这是我的取物
let response = await fetch(baseUrl + '/aaa/nom-de-levenement/add', {
method: 'POST',
headers: {
'X-CSRF-TOKEN': token,
"Content-type": "application/json",
},
body: {
"page": "pageName"
}
})
return response.json()
和我的控制器:
/**
* @Route("/add", methods={"POST"})
*/
public function createPage($slug, EntityManagerInterface $entityManager, EventRepository $eventRepository, Request $request){
$event = $eventRepository->findOneBy(['slug' => $slug]);
$data = $request->request->get('page');
dd($data);
}
并且转储 returning null
感谢您的帮助
例如,我尝试更改 fetch 中的内容类型以及控制器中的某些内容:
$_POST return 空
$request->get('page') return 空
我尝试使用 postman 的控制器,它 return 很好的变量。
要以这种方式发送 POST 数据,您应该使用 FormData
对象:
const data = new FormData();
data.append('page', 'pageName');
let response = await fetch(baseUrl + '/aaa/nom-de-levenement/add', {
method: 'POST',
headers: {
'X-CSRF-TOKEN': token,
"Content-type": "application/json",
},
body: data
})
return response.json()
然后您可以在您的控制器中执行此操作:
$data = $request->request->get('page');
如果您尝试在 body
中传递“原始”数据,您可以使用 $request->getContent()
方法访问它,但我相信在这种情况下 return "[object Object]"
因为 body
对象将被简单地解析为字符串。
我正在尝试使用 twig 中的 fetch 发送 post 数据。但是我无法访问控制器中的那些变量。
这是我的取物
let response = await fetch(baseUrl + '/aaa/nom-de-levenement/add', {
method: 'POST',
headers: {
'X-CSRF-TOKEN': token,
"Content-type": "application/json",
},
body: {
"page": "pageName"
}
})
return response.json()
和我的控制器:
/**
* @Route("/add", methods={"POST"})
*/
public function createPage($slug, EntityManagerInterface $entityManager, EventRepository $eventRepository, Request $request){
$event = $eventRepository->findOneBy(['slug' => $slug]);
$data = $request->request->get('page');
dd($data);
}
并且转储 returning null
感谢您的帮助
例如,我尝试更改 fetch 中的内容类型以及控制器中的某些内容:
$_POST return 空
$request->get('page') return 空
我尝试使用 postman 的控制器,它 return 很好的变量。
要以这种方式发送 POST 数据,您应该使用 FormData
对象:
const data = new FormData();
data.append('page', 'pageName');
let response = await fetch(baseUrl + '/aaa/nom-de-levenement/add', {
method: 'POST',
headers: {
'X-CSRF-TOKEN': token,
"Content-type": "application/json",
},
body: data
})
return response.json()
然后您可以在您的控制器中执行此操作:
$data = $request->request->get('page');
如果您尝试在 body
中传递“原始”数据,您可以使用 $request->getContent()
方法访问它,但我相信在这种情况下 return "[object Object]"
因为 body
对象将被简单地解析为字符串。