试图遵循Symfony 3.1书:
这是我的控制器
<?php
namespace AppBundle\Controller;
use Symfony\Component\HttpFoundation\Response;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
class LuckyController
{
/**
* @Route("/lucky/number")
*/
public function numberAction() {
$num = rand(0,100);
return new Response("number is ". $num);
}
}
这本书转到了网址:http://localhost:8000/lucky/number
看到回应。但是,对我而言,这以404 The requested resource /lucky/number was not found on this server.
结束。
通过阅读其他一些类似的问题,看起来可以通过注释完成路由。这段代码有什么问题?
编辑:关于网络服务器:我正在从web /目录运行内置的php服务器。即php -S localhost:8000
。同时使用php bin/console server:run
运行 - 发送回No route found for "GET /lucky/number
答案 0 :(得分:3)
这里还有另一个可能的问题,那就是缓存的存在。如果您正在学习本教程,那么您可能已经查看了第一页,因此Symfony缓存了类和路由。 要确保Symfony获取这些更改,请确保清除缓存(使用适当的环境参数):
php bin/console cache:clear --no-warmup -e prod
答案 1 :(得分:1)
在提出问题之前找到了我没有找到的另一个问题的解决方案。
看起来这本书有拼写错误,而且要去的路线是http://localhost:8000/en/lucky/number
。
如果你这样做,一切都很好。我不知道/ en / route部分的定义在哪里。
答案 2 :(得分:1)
那将是_locale,而en是英语。
检查文件:
app/config/routing.yml
app/config/config.yml
答案 3 :(得分:0)
我在Symfony 3.2上遇到了这个确切的问题并解决了
php bin/console cache:clear --env=prod
每次我需要测试新添加的路线。
谢谢。