找不到Symfony 3路线

时间:2016-06-29 23:49:26

标签: routing symfony

试图遵循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

4 个答案:

答案 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

参见此参考: http://symfony.com/doc/current/book/translation.html

答案 3 :(得分:0)

我在Symfony 3.2上遇到了这个确切的问题并解决了

php bin/console cache:clear --env=prod 每次我需要测试新添加的路线。

谢谢。