2012-10-19 72 views
0

我是symfony2的新手。我正在爲「Hello {Name}」創建一個簡單的頁面,並使用WAMP。我使用routing.yml是如下Symfony2異常

projectnew_bundle: 
    resource: "@projectnew_bundle/Resources/config/routing.yml" 
    type:  annotation 
    prefix: /start 

和我@ projectnew_bundle /資源/配置/ routing.yml文件如下(projectnew_bundle在src文件夾\項目\ new_bundle命名空間):

projectnew_bundle_hello: 
    pattern: start/hello/{name} 
    defaults: { _controller: projectnew_bundle:Start:hello } 

我還使用"new project\new_bundle\projectnew_bundle()"語法在AppKernel.php中註冊了bundle projectnew_bundle。我\src\project\new_bundle\projectnew_bundle.php如下:

<?php 

namespace project\new_bundle; 

use Symfony\Component\HttpKernel\Bundle\Bundle; 

class projectnew_bundle extends Bundle 
{ 
} 

但是,當我嘗試加載以下URL:「http://localhost/symfony_project/Symfony/web/app_dev.php/start/hello/Riten」,它提供了500內部服務器錯誤:

Cannot load resource "@projectnew_bundle/Resources/config/routing.yml" . Make sure the "projectnew_bundle/Resources/config/routing.yml" bundle is correctly registered and loaded in the application kernel class.

+0

可以肯定的,你有沒有清除緩存(應用程序/控制檯高速緩存:明確-env = DEV) – sglessard

+0

我沒有使用控制檯..但是,我已經清空了的Symfony /應用/緩存文件夾。 – Riten

+0

請大家給我解決方案來解決問題 – Riten

回答

3

嘗試刪除類型:註釋從路由.yml

編輯:

您的應用程序/ cofig/routing.yml中有

projectnew_bundle: 
    resource: "@projectnew_bundle/Resources/config/routing.yml" 
    prefix: /start 

*注:我取下type: annotation

所以你設置任何路由前綴/start列入projectnew_bundle/Resources/config/routing.yml

那麼你@projectnew_bundle/Resources/config/routing.yml有:

projectnew_bundle_hello: 
    pattern: start/hello/{name} 
    defaults: { _controller: projectnew_bundle:Start:hello } 

與該模式創建的路線projectnew_bundle_hellostart/hello/{name}添加前綴app/config/routing.yml您的最終路線是/startstart/hello/{name}而不是/start/hello/{name}正如你所期待的那樣。

如果你想要你的預期路線工作,你可以從@projectnew_bundle/Resources/config/routing.yml刪除start

命令php app/console router:debug將顯示您的路線實際是什麼。

+0

現在,我從routing.yml中刪除了類型:註釋...並且它現在顯示404找不到錯誤:'找不到路由爲「GET/start/hello/Riten」'..所以,我現在應該做什麼來解決這個問題? – Riten

+0

好吧,我更新了答案。 – d0001

+0

謝謝@Daniel ..你真的幫我解決了這個問題.. :) – Riten

0

如果更改爲鍵入:註釋,則必須將資源路徑更改爲控制器路徑。

projectnew_bundle: 
resource: "@projectnew_bundle/Controller" 
type:  annotation 
prefix: /start