0

アイテムが他の異なるモジュールにリンクされているレイアウトのメニューを作成したいと思います。

例:製品モジュールのアクションにリンクされたアイテム「製品」、サービスモジュールのアクションにリンクされたアイテム「サービス」。

を設定する'url'=>('product/<controllerID>/<actionID>')と機能しません'url'=>('service/<controllerID>/<actionID>')。製品モジュールに移動して[サービス]メニューをクリックすると、URLは次のようになります。

index.php?r=product/service/<controllerID>/<actionID>

それ以外の

index.php?r=service/<controllerID>/<actionID>

404エラーになります。(確かに、サービスモジュールは製品モジュール内にありませんが、URLによってそのように見えるためです)。

これに対する解決策はありますか?

4

2 に答える 2

3

createUrl()ドキュメントを確認してください:

URLルート。これは、「ControllerID/ActionID」の形式である必要があります。ControllerIDが存在しない場合、現在のコントローラーIDがルートのプレフィックスになります。ルートが空の場合、それが現在のアクションであると見なされます。コントローラがモジュールに属している場合、モジュールIDがルートのプレフィックスになります。(モジュールIDプレフィックスが必要ない場合、ルートはスラッシュ'/'で始まる必要があります。

その最後の行は私たちにすべてを教えてくれます。あなたのためにすべき最善のことは、すべてのルートを/:で開始することです。

'url'=>array('/<moduleID>/<controllerID>/<actionID>')
于 2012-05-07T13:53:45.333 に答える
1

これをチェックして

'url'=>$this->createUrl('/<moduleId>/<controllerID>/<actionID>')
于 2012-05-07T07:45:11.010 に答える