Yii2中的UrlManager出现问题

时间:2019-04-06 19:16:57

标签: yii2

我的Yii2应用程序中有一个directions模块,在其中DefaultController中我有两个动作indexview

我需要创建与子弹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>',

但是它也不起作用。

1 个答案:

答案 0 :(得分:1)

在这种情况下,您不能跳过控制器名称-您需要在规则中将其指定为路由的一部分:

 'directions/<url:\w+>' => 'directions/default/view',

并在创建URL时使用完整的路由:

<li><a href="<?=Url::to(['/directions/default/view','url' => $items->url]); ?>"><?=$items->name?></a></li>