パスを 1 つの共通パスの下にグループ化したい。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 が「module/controller/index」と呼ばれるようになります。
于 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 ファイルを作成するだけです。bootstrap
ただし、アプリケーション構成ファイルのセクションを更新することを忘れないでください。
于 2015-04-06T09:47:06.017 に答える