0

My Apps にはクロス アプリケーション リンクが必要であり、 http: //symfony.com/blog/cross-application-links のブログを細心の注意を払ってフォローした後

そのうちの 1 つが機能し、そのうちの 1 つが機能していません。フロントエンドからバックエンド アプリケーションへのリンクは正常に機能しますが、バックエンド コードのフロントエンドへのリンクは機能しませんか? 基本的に、私は 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') )

ダッシュボード/ログインは有効なパスですが、これは次を返します: The route does not exist ...500 internal server error

皆さんはどう思いますか?

また、参照用に 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/*
4

1 に答える 1

1

フロントエンドの routing.yml に dasboard/login URL を含む実際のルートを配置しようとしましたか?

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') )

$sf_contextPs:の代わりにテンプレートで使用できますsfContext::getInstance()

于 2012-04-13T07:26:28.237 に答える