Symfony 3简单的路线不起作用

时间:2016-03-19 17:43:00

标签: php symfony

我有一个非常明确的标准Symfony安装,这是主页http://triod.ru/project/web/ (我只改变了开发,所以我可以看到日志)

我在src / AppBundle / Controller目录中创建了一个文件LuckyController.php

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

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

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

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

但页面上没有任何内容http://triod.ru/project/web/lucky/number 该类本身取自Symfony官方教程/文档,但它不起作用。我不知道怎么可能。

3 个答案:

答案 0 :(得分:1)

如上所述,扩展基类Controller对我来说不起作用。要解决这个问题,我必须在web / app.php中进行以下更改

$kernel = new AppKernel('prod', true);

此外,我必须添加&#39; en&#39;在网址中: http://scotchbox.demo/en/lucky/number

答案 1 :(得分:0)

我认为您需要从symfony扩展Controller类以使其正常工作。

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

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

答案 2 :(得分:0)

Tommie是对的,我刚刚完成你的代码:

<?php
// 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>'
        );
    }
}