如何在Symfony 2.8中设置主页路由


How to set Home page route in Symfony 2.8

我学Symfony 2.8很难。

我创建了一个bundle名为BlogBudle,并在其中创建了一个controller名为HomeController

我的目标是:创建/test URL并将其分配给home page url

下面是我的代码:

/var/www/symfony/app/config/routing.yml

blog:
resource: "@BlogBundle/Controller/"
type:     annotation
prefix:   /
app:
resource: "@AppBundle/Controller/"
type:     annotation

/var/www/symfony/src/BlogBundle/控制器/HomeController.php

namespace BlogBundle'Controller;
use Symfony'Bundle'FrameworkBundle'Controller'Controller;
use Sensio'Bundle'FrameworkExtraBundle'Configuration'Route;
class HomeController extends Controller
{
  /**
   * @Route("/test")
   */
  public function indexAction()
  {
      return $this->render('BlogBundle:Default:index.html.twig');
   }
 }

当我运行php app/console debug:router时,它显示

名称方法方案主机路径

blog_home_index ANY ANY ANY/test

问题:如果我访问http://www.example.com/test,显示404错误。

下面是我的VH配置:

<VirtualHost *:80>
  #ServerAdmin admin@test.com
  ServerName mysmfony.com
  ServerAlias www.mysymfony.com
  DocumentRoot /var/www/symfony/web
  DirectoryIndex app_dev.php
  <Directory /var/www/symfony/web>
      AllowOverride All
      Options All
   </Directory>
   ErrorLog ${APACHE_LOG_DIR}/mysymfony.com.log
   CustomLog ${APACHE_LOG_DIR}/mysymfony.com.log combined
</VirtualHost>

需要在app/config/routing中覆盖你的bundle路由。yml例如:

user_test:
    resource: "@BlogBundle/Resources/config/routing.yml"
    prefix:   /

这是重定向到您的主页的路由

BlogBundle/资源/config/routing.yml

any_unique_route_name:
    pattern:  /test
    defaults: { _controller: BlogBundle:Home:index }

下面是一个例子:

路由。yml

my_route_name:
    path:      /test
    defaults:
        _controller: NamespaceBlogBundle:Home:index

如果你的控制器名为HomeController那么渲染应该是这样的

public function indexAction()
  {
      return $this->render('NamespaceBlogBundle:Home:index.html.twig');
   }

Symfony路由文档