gpt4 book ai didi

php - 如何在 symfony 路由中传递数组?

转载 作者:行者123 更新时间:2023-12-05 06:31:28 25 4
gpt4 key购买 nike

我的 Controller 中有一个函数将数组作为输入。该值是从 ajax 传递的。目前它没有被正确解码。

 /**
* @Route("/userLogin/{params}", name="userLogin", methods={"POST"})
* @param UserdbRepository $repository
* @param $params
* @return \Symfony\Component\HttpFoundation\Response
*/

public function userLogin(UserdbRepository $repository, $params) {

$email = $params[0];
$pass = $params[1];

print_r($params); // output correct value test@test.com
echo $params[0]; // output t
echo $email; // output t

.... rest of code
}

js:

 const array = [ 'email', 'pass' ]

$.ajax({
url: `/userLogin/${array}`,
type: "post",
dataType: 'json'
})

最佳答案

使用 Request 组件 Symfony\Component\HttpFoundation\Request 你可以 Autowiring 它:public function userLogin(UserdbRepository $repository, Request $request)

示例 1:从 requestBody 获取参数:

$email = $request->request->get('email', null);
如果 'email' 参数未在请求中提供,则 $email 将为 null

不要忘记在您的 ajax 请求中传递 data 属性

const requestBody = {
'email': 'asd@example.com',
'pass': '123',
};

$.ajax({
url: `/userLogin/`,
type: "post",
data: requestBody,
});

注意:不要以json格式发送数据。您还可以从 @Route 模式和 $params 参数中删除 {params}。

示例 2:从 queryString 获取 'email' 参数:

$email = $request->query->get('email', null);

https://symfony.com/doc/current/components/http_foundation.html

关于php - 如何在 symfony 路由中传递数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51827193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com