【问题标题】:My first controller in symfony我在 symfony 中的第一个控制器
【发布时间】:2016-02-24 21:45:42
【问题描述】:
// 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 应用程序的主页。

【问题讨论】:

  • 您在访问/app_dev.php/lucky/number吗?如果不这样做,则需要清除生产环境的缓存:$ php app/console cache:clear --env=prod
  • 另一件事:你有imported the routes吗?

标签: php symfony annotations


【解决方案1】:

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

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

Symfony docs for more details

还可以尝试清除缓存,以确保安全。

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-02-09
      • 2020-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      • 1970-01-01
      相关资源
      最近更新 更多