为了账号安全,请及时绑定邮箱和手机立即绑定

Symfony 总是包含路由默认值

Symfony 总是包含路由默认值

PHP
叮当猫咪 2022-07-16 10:10:00
我有一个任务实体,它有多个状态,比如new、open和closed。出于这个原因,我正在尝试生成一条路线/tasks/new /tasks/open /tasks/closed。但是,如果我的路由中没有设置选项,我希望它new用作默认值并将其添加到 url。我的控制器:/** * @Route("/tasks/{!status?new}", name="app_tasks") */public function tasks(TaskRepository $taskRepository, string $status){    $tasks = $taskRepository->findBy(['status' => $status]);    return $this->render('tasks/index.html.twig', ['tasks' => $tasks]);}然而,这导致不是一个匹配的路线。/tasks/new  => no route found  => should work/tasks/open => no route found  => should work/tasks      => no route found  => should work & route should be /tasks/newetc.主要问题似乎是!之前的status。如果我完全删除它,一切都会按预期工作,除了new任务的路线看起来像/tasks而不像/tasks/new- 我真正想要的。我已经尝试清除我的缓存 - 但不起作用。Symfony 版本是 4.4.2。
查看完整描述

2 回答

?
慕的地8271018

TA贡献1796条经验 获得超4个赞

github上有一个未解决的问题。这可能会在较新的版本中得到修复。

至于现在尝试使用以下内容:

@Route("/tasks/{!status}", name="app_tasks", defaults={"status": "new"})


查看完整回答
反对 回复 2022-07-16
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

也许您可以为同一方法使用 2 条路线。一个带有蛞蝓,如果没有被抓到则默认一个。

或者您可以if根据您的主要问题在控制器中进行基本检查。


查看完整回答
反对 回复 2022-07-16
  • 2 回答
  • 0 关注
  • 167 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号