0

同じコントローラーとアクションを呼び出す 4 つの child_routes があります。

    'noticia' => 配列(
        'タイプ' => 'セグメント',
        'オプション' => 配列(
            'route' => 'noticia[/:slug]',
            '制約' => 配列(
                    'コントローラー' => '[a-zA-Z][a-zA-Z0-9_-]*',
                    'アクション' => '[a-zA-Z][a-zA-Z0-9_-]*',
            )、
            'デフォルト' => 配列(
                '__NAMESPACE__' => 'アプリケーション\コントローラー',
                'コントローラ' => 'ポスト',
                'アクション' => 'インデックス',
            )、
        )、
    )、
    'dica' => 配列(
        'タイプ' => 'セグメント',
        'オプション' => 配列(
            'route' => 'dica[/:slug]',
            '制約' => 配列(
                'コントローラー' => '[a-zA-Z][a-zA-Z0-9_-]*',
                'アクション' => '[a-zA-Z][a-zA-Z0-9_-]*',
            )、
            'デフォルト' => 配列(
                '__NAMESPACE__' => 'アプリケーション\コントローラー',
                'コントローラ' => 'ポスト',
                'アクション' => 'インデックス',
            )、
        )、
    )、
    'ovarejao' => 配列(
        'タイプ' => 'セグメント',
        'オプション' => 配列(
            'route' => 'o-varejao[/:slug]',
            '制約' => 配列(
                'コントローラー' => '[a-zA-Z][a-zA-Z0-9_-]*',
                'アクション' => '[a-zA-Z][a-zA-Z0-9_-]*',
            )、
            'デフォルト' => 配列(
                '__NAMESPACE__' => 'アプリケーション\コントローラー',
                'コントローラ' => 'ポスト',
                'アクション' => 'インデックス',
            )、
        )、
    )、
    'サービス' => 配列(
        'タイプ' => 'セグメント',
        'オプション' => 配列(
            'route' => 'servicos[/:slug]',
            '制約' => 配列(
                'コントローラー' => '[a-zA-Z][a-zA-Z0-9_-]*',
                'アクション' => '[a-zA-Z][a-zA-Z0-9_-]*',
            )、
            'デフォルト' => 配列(
                '__NAMESPACE__' => 'アプリケーション\コントローラー',
                'コントローラ' => 'ポスト',
                'アクション' => 'インデックス',
            )、
        )、
    )、

必要なのは、これらのルートを区別できるようにパラメーターを渡すことです。どうやって?

4

1 に答える 1

1

あなたの構造は少しずれていると思います。1 つのコントローラーの 1 つのアクションに対して 4 つの異なるルートがあるのはなぜですか? これはほとんど意味がありません。

servicosこれまでに設定した各ルートovarejaodica、を、 、、noticiaのような同様のアクションを使用して PostController にルーティングします。servicosActionovarejaoActiondicaActionnoticiaAction

アクションがそれぞれのビューで非常に似ている場合は、すべてのアクションに対して 1 つのテンプレートを使用することもできます。これにより、テンプレート作成が少し簡単になります。これは次のように行われます。

public function servicosAction()
{
    $vm = new ViewModel();
    $vm->setTemplate('namespace/post/multiple.phtml');

    // Grab data from your model here with some parameter

    return $vm->setVariables(array(
        //key-value paired array of view variables
    ));
}

これが基準を満たさない場合は、問題をより明確にしてください。あなたが達成したいことは、正確には何ですか?

于 2012-12-26T13:17:53.800 に答える