【问题标题】:How to set Home page route in Symfony 2.8如何在 Symfony 2.8 中设置主页路由
【发布时间】:2017-03-17 23:56:34
【问题描述】:

我很难学习Symfony 2.8

我创建了一个名为BlogBudlebundle,并在其中创建了一个名为HomeControllercontroller

我的目标是: 创建一个/testURL并将其分配给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/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');
   }
 }

当我运行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>

【问题讨论】:

  • 这是 symfony 主页显示 Symfony 欢迎页面
  • http://www.example.com/test 你看到this 错误了吗?
  • 是的,这是错误
  • php app/console debug:router --env=prod 的输出是什么?

标签: php symfony routing


【解决方案1】:

需要覆盖 app/config/routing.yml 中的捆绑路由,例如:

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

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

BlogBu​​ndle/Resources/config/routing.yml

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

确保这对您有帮助。

【讨论】:

  • 我遇到了同样的问题。谢谢@KishanPatel
【解决方案2】:

这是一个例子:

routing.yml

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

另外如果你的控制器叫做 HomeController 渲染应该是这样的

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

Symfony routing doc

【讨论】:

  • 不工作 :( .Also 文档示例在 App Bundle 上,而我的问题发生在我自己的包中。
  • 在 app/config/routing.yml 中添加你的路径到你的 bundle 中的 routing.yml,并在你的 bundle 的 routing.yml 文件中添加我给你的代码
猜你喜欢
  • 1970-01-01
  • 2016-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-18
  • 1970-01-01
相关资源
最近更新 更多