2013-12-17 43 views
2

我在SRC \莫達\ CategoryBundle \控制器\ DefaultController.phpSymfony2的新包路由

和改變路由來創建新的軟件包:

namespace Moda\CategoryBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; 
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template; 

class DefaultController extends Controller 
{ 
    /** 
    * @Route("/show", name="_show") 
    * @Template() 
    */ 
    public function indexAction() 
    { 
     die('test'); 
     return array(); 
    } 
} 

和我的應用程序的routing.yml /配置

moda_category: 
    resource: "@ModaCategoryBundle/Controller/" 
    type:  annotation 
    prefix: /

該鏈接dosnt工作:

本地主機/網絡/ app_dev.php /分類/顯示

本地主機/網絡/ app_dev.php /顯示

你知道我在做什麼錯?

+0

之後你改變你的配置你清除了緩存? – virhi

+0

我建議設置路由名稱並檢查路由器是否可見。你可以通過這種方式檢查:app/console router:debug route_name – Cyprian

+0

我設置名稱並通過app/console路由器檢查路由:debug我發現它是可見的_show任何任何/顯示我也有清除緩存,但它仍然不起作用。任何想法? – Purzynski

回答

3

我想你應該在你的包中導入config.yml文件。 因此,而不是:

moda_category: 
    resource: "@ModaCategoryBundle/Controller/" 
    type:  annotation 
    prefix: /

將其更改爲:

moda_category: 
    resource: "@ModaCategoryBundle/Resources/config/routing.yml" 
    type:  annotation 
    prefix: /

,然後添加你需要的文件中的路由。

+0

爲什麼你想在@ ModaCategoryBundle/Resources/config/routing.yml文件中寫入路由。使用註釋的所有要點都是在控制器文件內部配置路由。 – virhi

0

對於那些誰使用的Symfony 3.4+

我有同樣的問題,但我很容易地解決它。 我用Symfony的3.4

您應該輸入:

ModaCategoryBundle/Controller/DefaultController.php

默認情況下,IndexActionDefaultController.php應該是這樣的:

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

那麼你應該改變這種路徑:

public function indexAction() 
    { 
      return $this->render('@ModaCategory/Default/index.html.twig'); 
    }