2015-06-21 46 views
0

據我所知,symfony建議使用默認AppBundle(如本頁http://symfony.com/doc/current/best_practices/creating-the-project.html所述),但是因爲我的項目是由一些獨立的應用程序組成,所以我想把它們分成自己的包。Symfony 2:生成的包不會找到路由

我想在symfony2控制檯的幫助下生成一個bundle生成:bundle命令。目錄結構似乎全部到位,但我經常會收到一條錯誤消息,說明路由未定義,儘管我已經定義了它。

的例外,我得到:

request.ERROR:未捕獲的PHP異常的Symfony \分量\ HttpKernel \異常\ NotFoundHttpException:GET /你好/ somename 「 」在C「 未找到路線」:\ WAMP \ WWW \ symfony \ test \ app \ cache \ prod \ classes.php line 2480 {「exception」:「[object](Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException(code:0):No route found for \」GET/hello/somename \「在C:\ wamp \ www \ symfony \ test \ app \ cache \ prod \ classes.php:2480,Symfony \ Component \ Routing \ Exception \ ResourceNotFoundException(代碼:0):在C:\ wamp \ www \ symfony \ test \ app \ cache \ prod \ appProdUrlMatcher.php:35)「} []

這裏是設置:

的routing.yml:

my: 
    resource: "@MyBundle/Resources/config/routing.php" 
    prefix: /
app: 
    resource: "@AppBundle/Controller/" 
    type:  annotation 

routing.php:

use Symfony\Component\Routing\RouteCollection; 
use Symfony\Component\Routing\Route; 

$collection = new RouteCollection(); 

$collection->add('my_homepage', new Route('/hello/{name}', array(
    '_controller' => 'MyBundle:Default:index', 
))); 

return $collection; 

MyBundle /控制器/ DefaultController.php

namespace MyBundle\Controller; 

use Symfony\Bundle\FrameworkBundle\Controller\Controller; 

class DefaultController extends Controller 
{ 
    public function indexAction($name) 
    { 
     return $this->render('MyBundle:Default:index.html.twig', array('name' => $name)); 
    } 
} 

束也被適當地在AppKernel類註冊。

據我所知,調用mydomain.local/hello/somename應該做的伎倆,但它不會工作。

P.S.我也嘗試了註釋方法,但它也不會工作(我得到相同的結果)

P.S. 2我知道這是一個非常有問題的問題,但迄今爲止我找到的答案中沒有一個能夠幫助我解決這個問題。

P.S. 3默認AppBundle工作正常,使用類似的設置(但註釋代替)

回答

1

調試消息說你是prod環境。

您是否嘗試過從開發環境訪問您的路線:mydomain.local/app_dev.php/hello/somename或清除緩存?

+1

太好了。這工作。沒有想到清除緩存(老實說,它並沒有引起我的注意,它正在使用prod環境,剛剛從SF開始......)。有關如何配置正確環境的任何快速提示?謝謝。 – mspir

+0

標準版中的基本環境配置幾乎適用於所有基本用例。通常,我只爲單元和功能測試創建一個自定義測試環境。 – jobou