php - 在 redirectToRoute 中发送参数并在控制器中获取它
问题描述
我尝试在重定向中发送参数,但控制器中的 get 返回null
:
重定向:
public function taskInUser(User $user): Response
{
return $this->redirectToRoute('task_add', ['user' => $user]);
}
在控制器中:
/**
* @Route("/add", name="task_add")
*
*/
public function addAction(User $user = null): Response
{
dump($user);die();
...
}
我也尝试这样做:
/**
* @Route("/add", name="task_add")
*
*/
public function addAction(Request $request): Response
{
dump($request->query->get('equipment');die();
...
}
它没有用。我在控制器中收到null
,但我检查了一下,它发送了一个很好的价值。
解决方案
为什么不在路由声明中添加参数?看这里 :
https://symfony.com/doc/current/routing.html#route-parameters
您可以将用户 ID 用作 int :
/**
* @Route("/add/{user_id}", name="add_user")
*/
public function addAction(int $user_id)
或使用 ParamConverter 将 id 转换为 User 而不使用 Repository 功能。
https://symfony.com/doc/current/routing.html#parameter-conversion
推荐阅读
- python - 如何从 cmd.exe 运行 python3
- compression - 存储LZW算法的输出代码
- amazon-web-services - 何时使用 EBS 快照与 AMI 映像
- bash - 如果是符号链接,则调用获取目录 Bash 脚本
- laravel - 如何使用 Mailgun 在 Laravel 中发送电子邮件?
- java - Spring boot 为 JpaRepository 创建 bean 时出错
- javascript - Flatpickr 不会在 prod (Heroku) 上加载,但在 dev 中会加载
- python - 如何检查 GPU 是否存在而不在 tensorflow 中生成警告
- python - 在条形图上设置自定义 x-tick 名称
- spring-cloud-contract - Spring Cloud Contract:如何验证数组列表(基于 Kotlin 的项目)