我的Yii2应用程序中有一个directions
模块,在其中DefaultController
中我有两个动作index
和view
。
我需要创建与子弹site.ru/directions/allergology
的链接才能与
public function actionView($url) {
}
我创建了网址:
<li><a href="<?=Url::to(['/directions/view','url' => $items->url]); ?>"><?=$items->name?></a></li>
然后我在UrlManager
中添加了规则:
'<module:directions>/<url:\w+>' => '<module>/view'
但是我得到Page Not Found (#404)
-yii\base\InvalidRouteException: Unable to resolve the request "directions/view".
我尝试使用一些规则,例如
'<module:directions>/<url:\w+>' => '<module>/<controller>/view',
'<module:directions>/<controller:\w+>/<action:\w+>/<id:\d+>' => '<module>/<controller>/<action>',
'<module:directions>/<controller:\w+>/<action:\w+>' => '<module>/<controller>/<action>',
但是它也不起作用。
答案 0 :(得分:1)
在这种情况下,您不能跳过控制器名称-您需要在规则中将其指定为路由的一部分:
'directions/<url:\w+>' => 'directions/default/view',
并在创建URL时使用完整的路由:
<li><a href="<?=Url::to(['/directions/default/view','url' => $items->url]); ?>"><?=$items->name?></a></li>