2012-04-13 53 views
0

我的應用程序需要跨應用程序鏈接和精心繼博客在 http://symfony.com/blog/cross-application-linksSymfony的1.4跨應用程序鏈接失敗

後,我得到了他們中的一個工作,他們中的一個不工作。從前端到後端應用程序的鏈接工作正常,但不是後端代碼前端的鏈接?基本上,我有我的backendConfiguration.class.php文件:

protected $frontendRouting = null ; 

    public function generateFrontendUrl($name, $parameters = array()) 
    { 
    return 'http://localhost:8080/frontend_dev.php'.$this->getFrontendRouting()->generate($name, $parameters); 
    } 

    public function getFrontendRouting() 
    { 
    if (!$this->frontendRouting) 
    { 
     $this->frontendRouting = new sfPatternRouting(new sfEventDispatcher()); 

     $config = new sfRoutingConfigHandler(); 
     $routes = $config->evaluate(array(sfConfig::get('sf_apps_dir').'/frontend/config/routing.yml')); 

     $this->frontendRouting->setRoutes($routes); 
    } 

    return $this->frontendRouting; 
    } 

在我的模板我:

echo link_to('Log out', sfContext::getInstance()->getConfiguration()->generateFrontendUrl('dashboard/login')) 

儀表板/登錄是一個有效的路徑,但它返回: 路由不存在。 .500內部服務器錯誤

你們認爲什麼?

還張貼我的routing.yml文件,以供參考:

# default rules 
homepage: 
    url: /
    param: { module: dashboard, action: index } 

# generic rules 
# please, remove them by adding more specific rules 
default_index: 
    url: /:module 
    param: { action: index } 

default: 
    url: /:module/:action/* 

回答

1

你嘗試把一個真實的路徑與您的前端routing.yml中的dasboard /登入網址?

dashboard_login: 
    url: /dashboard/login 
    param: { module: dashboard, action: login } 

# default rules 
homepage: 
    url: /
    param: { module: dashboard, action: index } 

# generic rules 
# please, remove them by adding more specific rules 
default_index: 
    url: /:module 
    param: { action: index } 

default: 
    url: /:module/:action/* 

,然後調用路由名稱代替模塊/動作:

echo link_to('Log out', $sf_context->getConfiguration()->generateFrontendUrl('dashboard_login')) 

PS:你可以在模板中使用$sf_context代替sfContext::getInstance()

+0

生病了!它的工作,我不知道爲什麼博客從來沒有提到這一點!乾杯! – user1020069 2012-04-13 17:18:37