Symfony 4。{_ format}无效

时间:2018-01-15 17:55:36

标签: php symfony routing frameworks symfony4

所以我有这条路线

 /**
 * @Route("/user/{id}/diary.{_format}",
 *     defaults={"_format": "json"},
 *     requirements={
 *        "id": "\d+",
 *        "_format": "csv|json"
 *     }
 * )
 */
public function showRaw(User $user, Request $request)
{

}

因此,当我访问acccess / user / 1 /日记时,它适用于我在函数中编写的任何内容,但是当我尝试访问/user/1/diary.json或/user/1/diary.csv时出现404错误,所以我猜路线参数不能正确匹配。

我想,根据格式是什么,返回不同的响应,但直到现在我无法获得格式。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我假设您使用的是PHP内置开发服务器,而没有显式路由脚本:

[saizferri:public]$  php -S localhost:5000

或:

[saizferri:symfony_project]$  php -S localhost:5000 -t public/

以这种方式运行时,PHP通过在当前目录(或用-t给出的根目录)中查找所请求的资源来处理每个请求。如果找不到and PHP thinks it is a file(与/user/1/diary.csv一样),PHP将返回HTTP 404;否则,它将返回HTTP 404。否则,将PHP will search用作index.phpindex.html,并且如果找到了$_SERVER["PATH_INFO"],则为/user/1/diary提供适当的设置,这就是为什么您可以查看{{1 }}。 (请参见手册中的the description。)

相反,告诉PHP通过public/index.php路由所有请求:

php -S localhost:<port> public/index.php