2012-01-13 9 views
0

私は、Symfony2の特定のルートのURLの生成を無効にする方法を探しています。カスタムURLジェネレータクラス

RouteName: 
    class: sfDoctrineRouteCollection 
    options: 
    model:    Model 
    prefix_path:   /route/:id/:slug 
    column:    id 
    route_class:   CustomDoctrineRoute 

class CustomDoctrineRoute extends sfDoctrineRoute 
{ 
    public function generate($params, $context = array(), $absolute = false) 
    { 
    //custom logic on route params 

    return parent::generate($params, $context, $absolute); 
    } 

} 
+0

密接に関連しています:http://stackoverflow.com/a/9016324/219931 – Dziamid

答えて

2

あなたはコアルータのクラスパスを上書きすることができます:

<parameters> 
    <parameter key="router.class">Company\Bundle\Router\CustomRouter</parameter> 
</parameters> 

デフォルトルータのクラス(のSymfony \バンドル\ FrameworkBundle \私はこのようにそれを行うために使用されるsymfony 1.4で Routing \ Router)にはデフォルトのオプションがあります(メソッドsetOptions()を参照)。アプリパラメータに設定して、必要なクラスを上書きすることができます。ルータ:

router.options.generator_class: Company\Bundle\Router\UrlGenerator 

これがあなたの問題を解決することを願っています。

+0

私はこのソリューションを使用したとき、動作させるには "router.options.generator_base_class"を実行しなければなりませんでした。しかし、その解決策は正しい方向に向いています。 FrameworkBundleのrouting.xmlを参照してください。 – KSolo

+0

@KSolo私はこれを動作させようとしていますが、私は何をしなければならないのか分かりません。私はrounting.ymlファイルとconfig.ymlを持っています。あなたは正しい方向に私を向けることができますか?私はすでにクラスを作成しただけで、router.options.generator_base_classのパスを設定する必要があります – Basit