我是symfony的第一个控制器

时间:2015-11-22 20:48:05

标签: php symfony annotations

// src/AppBundle/Controller/LuckyController.php
namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Response;

class LuckyController extends Controller
{
    /**
     * @Route("/lucky/number")
     */
    public function numberAction()
    {
        $number = rand(0, 100);

        return new Response(
            '<html><body>Lucky number: '.$number.'</body></html>'
        );
    }
}

我是Symfony框架的新手。我试过这个简单的代码没有任何结果。 这是服务器响应:

  

找不到“GET / lucky / number”的路线404 Not Found - NotFoundHttpException   1个链接的异常:ResourceNotFoundException»

我现在不知道为什么默认控制器使用注释,我可以看到我的Symfony应用程序的主页。

2 个答案:

答案 0 :(得分:1)

我认为您需要导入注释路线。 Symfony将扫描您在app/config/routing.yml中提及的位置。

# app/config/routing.yml
lucky:
    resource: "@AppBundle/Controller/LuckyController.php"
    type:     annotation

请参阅Symfony docs for more details

还要尝试清除缓存,以确保。

答案 1 :(得分:0)

您错过了路线的重要部分及其名称:

/**
* @Route("/lucky/number", name="lucky_number")
*/

更多信息:http://symfony.com/doc/current/book/routing.html