Symfony 2.7在课堂上排队

时间:2016-02-05 08:46:56

标签: symfony-2.3

我想问你关于symfony中的路由。我知道我们可以在行动的基础上设置一条路线,但是当我把路线放在上课时,我看到了一种方法。我想知道这意味着什么?因为当我把路线放在第一课时,我找不到找不到页面的错误。

    <?php

namespace AppBundle\Controller;

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

/**
 * Class DefaultController
 * @package AppBundle\Controller
 * @Route('/Test')
 */
class DefaultController extends Controller
{
    /**
     * @Route("/", name="homepage")
     * @Template()
     */
    public function indexAction(Request $request)
    {

        // replace this example code with whatever you need
        return $this->render('default/index.html.twig', array(
            'base_dir' => realpath($this->container->getParameter('kernel.root_dir').'/..'),
        ));

    }
}

提前致谢。

1 个答案:

答案 0 :(得分:3)

注释 @Route 可以在方法和类中使用。

控制器应始终包装由同一主题相关的方法,例如CartController。在这个控制器中你将有与Cart相关的方法,所以你应该能够为所有这些方法定义一些前缀。

因此,如果您有 @Route(“/ cart”),则使用该注释定义的每个方法的路由都将附加到此前缀 / cart 。请记住,追加并不意味着被覆盖。

这应该有效。

您的“找不到页面”消息与此注释无关:)

更新

检查您的路线是否正在加载的一些步骤。

  • Symfony为您带来路由器调试器。它会列出项目中找到的所有可用路径。从项目的根目录php app/console debug:route。对于Symfony 3. *,php bin/console debug:router和非常古老的Symfony版本...... php app/console router:debug
  • 如果路线不存在,请确保正在加载路线。您需要向Framework指定需要解析您的控制器才能找到 @Route 注释:)

检查如何以多种方式从注释中加载路由here

简单的方法是......

app:
    resource: "@AppBundle/Controller"
    type:     annotation