所以我有这条路线
/**
* @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错误,所以我猜路线参数不能正确匹配。
我想,根据格式是什么,返回不同的响应,但直到现在我无法获得格式。
提前感谢您的帮助。
答案 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.php
或index.html
,并且如果找到了$_SERVER["PATH_INFO"]
,则为/user/1/diary
提供适当的设置,这就是为什么您可以查看{{1 }}。 (请参见手册中的the description。)
相反,告诉PHP通过public/index.php
路由所有请求:
php -S localhost:<port> public/index.php