简体   繁体   English

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

[英]How to set Home page route in Symfony 2.8

I got a hard time learning Symfony 2.8 . 我很难学习Symfony 2.8

I have created a bundle called BlogBudle and inside this I created a controller called HomeController . 我创建了一个名为BlogBudlebundle并在其中创建了一个名为HomeControllercontroller

My goal is: Create a /test URL and assign it to home page url 我的目标是:创建一个/test URL并将其分配给home page url

Below is my code: 下面是我的代码:

/var/www/symfony/app/config/routing.yml /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/Controller/HomeController.php /var/www/symfony/src/BlogBu​​ndle/Controller/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');
   }
 }

When I run php app/console debug:router , it shows 当我运行php app/console debug:router ,它显示

Name Method Scheme Host Path 名称方法方案主机路径

blog_home_index ANY ANY ANY /test blog_home_index ANY ANY ANY / test

Problem: If I visit http://www.example.com/test , it's showing 404 error. 问题:如果我访问http://www.example.com/test ,则显示404错误。

Also below is my VH Configuration: 以下也是我的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>

Need to overwrite your bundle route in app/config/routing.yml such as : 需要覆盖app / config / routing.yml中的捆绑路由,例如:

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

and

Here is route for redirect to your Home page 这是重定向到您的主页的途径

BlogBundle/Resources/config/routing.yml BlogBu​​ndle /资源/配置/ routing.yml中

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

Make sure this is helpful to you. 确保这对您有帮助。

Here is an example : 这是一个例子:

routing.yml 使用routing.yml

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

Also if your controller is called HomeController render should be like this 另外,如果您的控制器称为HomeController,则渲染应如下所示

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

Symfony routing doc Symfony路由文档

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM