我想将路径分组到一个公共路径下。我在 Yii2 文档中发现,这可以通过GroupUrlRule()
类来实现。我不明白在哪里设置它。我试着把它作为一个规则坐在里面urlManager
,confing/web.php
但什么也没发生。
问问题
3104 次
2 回答
7
想象一下,你有一些模块。您的 confing/web.php 文件可能如下所示:
'components' => [
'urlManager' => [
'class' => 'yii\web\UrlManager',
'showScriptName' => false,
'enablePrettyUrl' => true,
'rules' => [
[
'class' => 'yii\web\GroupUrlRule',
'prefix' => 'module',
'rules' => [
'/' => 'controller/index',
'create' => 'controller/create',
'edit' => 'controller/edit',
'delete' => 'controller/delete',
],
],
],
],
]
现在,通过 URL hostname.com/module 将被称为“模块/控制器/索引”。
于 2015-07-05T12:15:36.583 回答
5
您可以在Bootstrap
文件中执行此操作。例子:
项目/Bootstrap.php
namespace app;
use yii\base\BootstrapInterface;
use yii\web\GroupUrlRule;
class Bootstrap implements BootstrapInterface
{
public $urlRules = [
'prefix' => 'admin',
'rules' => [
'login' => 'user/login',
'logout' => 'user/logout',
'dashboard' => 'default/dashboard',
],
];
public function bootstrap($app)
{
$app->get('urlManager')->rules[] = new GroupUrlRule($this->urlRules);
}
}
项目/配置/web.php
return [
// ...
'bootstrap' => [
'log',
'app\Bootstrap',
],
// ...
]
PS Bootstrap 文件对于模块化应用程序结构非常有用。在模块文件夹中配置模块路由更加清晰。为此,只需为其文件夹中的每个模块创建引导文件。但不要忘记更新bootstrap
应用程序配置文件的部分。
于 2015-04-06T09:47:06.017 回答