对于 Web applications 网页应用, 默认值为 site
对应 SiteController控制器,并使用默认的动作。 因此你不带路由的访问应用,如:localhost/basic/web/index.php
访问入口脚本,默认显示app\controllers\SiteController::actionIndex()
的结果。
$defaultRoute是Module模块下的公共属性,默认值为default
它的作用是模块的下的默认路由。
如果在入口脚本里请求的是一个模块,而没有写上控制器和动作,那么就会调用$defaultRoute这个默认路由
如果没有认为给它赋其他值,那么它对于的就是DefaultController
如果没有给默认路由写上action动作,那么它会去调用yii\base\Controller::$defaultAction
控制器下的默认动作。
$defaultAction
的默认值为index
总的来说,$defaultRoute可以赋值为子模块,赋值为控制器,赋值为动作
举个例子:http://localhost/basic/web/index.php?r=login
- 有一个模块名为
login
如果项目里有定义一个模块名为login
,那么这个请求就会是调用到模块里的$defaultRoute
,如果没有修改它的默认值,那么请求的就是login
模块下的DefaultController
中的actionIndex
方法
如果你在login
模块下已经修改了$defaultRoute
,比如$defaultRoute = 'login';
,那么上面的请求就会是login
模块下的LoginController
中的actionIndex
方法
如果赋值为$defaultRoute = 'login/test';
那么上面的请求就会是login
模块下的LoginController
中的actionTest
方法 - 不存在一个模块名为
login
这种情况下不会去调用$defaultRoute
,那么r=login
就相当于去找一个LoginController
,由于没有指定的action动作,所以会执行$defaultAction的默认值,也就是actionIndex