YII2如何修改默认控制器/方法

时间:2022-09-02 09:30:53

在网上找了非常多的方法,但是都不好使最后自己综合网上所有自己琢磨出来的,见笑了

首先Yii2中在/vendor/yiisoft/yii2/web/Application.php的第28行  

public $defaultRoute = 'site';  /*这个是网上都有的,但是改的是框架源码,所以不建议使用*/

1、找到了自己扩展的配置文件在/config/web.php。

  在 $conifg=[] 里添加了一行代码: 'defaultRoute' => 'index', 。

  这样,默认控制器就从Yii默认的site变成了想要的index了。

2、不论前后台找到/config/mian.php在第一个数组里面,添加 'defaultController'=>'Index',

3、在/protected/config/main.php添加配置,

  <?php
    return array(
     'name'=>'Auto',
     'defaultController'=>'auto',

4、配置文件在/config/web.php 或者main.php里面。

  在 $conifg=[] 里添加了一行代码:

  'defaultRoute'=>'exam',

注意!注意!注意!

以上四种更改默认控制器的方法亲测无效!!!

0、下面这是我自己总结出来的:

  /protected/config/main.php或/backend/config/main.php中

  代码如下:

  <?php
    $params = array_merge(
          require(__DIR__ . '/../../common/config/params.php'),
          require(__DIR__ . '/../../common/config/params-local.php'),
          require(__DIR__ . '/params.php'),
          //require(__DIR__ . '/../../common/config/db.php'),
          require(__DIR__ . '/params-local.php')
    );

    return [
        'name'=>'Exam',

        'defaultRoute'=>'exam',

  红色即为正确设置方式。

  设置默认action

  在XxxController.php中设置

  代码如下:

  <?php

  class XxxController extends \yii\web\Controller
  {
      public $defaultAction = 'test';

    public function actionIndex()
      {
          ...
      }

      public function actionTest()
      {
          ...
      }
        ...

    如此,此时访问###/web/index.php就会

    默认转到###/web/index.php?r=Xxx/test

    ok,完事,收工!