Symfony 4 .{_format} 不工作

Symfony 4 .{_format} not working

所以我找到了这条路线

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

}

因此,当我访问 /user/1/diary 时,它可以与我在函数中编写的任何内容一起使用,但是当我尝试访问 /user/1/diary.json 或 /user/1/diary.csv 时,我得到一个 404 错误,所以我猜路由参数没有正确匹配。

我想,根据格式,return 不同的响应,但直到现在我无法获得格式。

在此先感谢您的帮助。

我假设您使用的是 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—as it did in the case of /user/1/diary.csv—PHP will return HTTP 404; otherwise, PHP will search for index.php or index.html, and, if either is found, it is served with $_SERVER["PATH_INFO"] set appropriately—this is why you were able to view /user/1/diary. (See the description。)

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

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