创建模块有以下步骤:
步骤1:
在yii框架的根目录新建一个目录modules,当然也可以使用其他命名。
在modules目录中,再创建三个controllers、models、views目录,用来放什么的就不用说了。最重要的是下面这个Admin.php类文件。
<?php
namespace app\modules;
use yii\base\Module;
class Admin extends Module
{
public $controllerNamespace='app\modules\controllers';
public function init(){
parent::init();
}
}
该类文件可以声明接下来在该模块中使用的控制器的命名命名空间,如果不声明的话,默认是按照该类声明时使用的命名空间+controllers,例如 app\modules\controllers。init函数是为了初始化模块属性代码,必须被覆盖重写。
步骤2:
创建了模块文件后,就必须在/config/web.php文件中添加模块参数。
'modules'=>[
'admin'=>[
'class'=>'app\modules\Admin'
]
]
也就是向$config变量中添加了modules参数,即$config['modules']['admin'],其中admin是在路由中进行访问的模块id, class是指定模块初始化文件的路径,这里使用的命名空间的访问方法。
步骤3:
在刚才创建的目录中,即\modules\controllers创建TestController控制器
TestController代码:
<?php /** Date: 18-5-15 Time: 下午8:01*/ namespace app\modules\controllers; use yii\web\Controller; class TestController extends Controller{ public function actionTest(){ $this->layout=false; return $this->render('test'); } }
其中$this->layout是禁用该视图使用布局,若不禁用的话,该视图将使用默认视图中的布局,即\views\layout\main.php
然后在视图文件中,创建对应的视图文件
test.php代码:
<?php /** Date: 18-5-15 Time: 下午8:02*/ echo "this is test";
步骤4:
访问模块中的控制器
按照 模块/控制器/方法来访问,在此例中就是modules/test/test
所以访问的路由是:localhost?r=module/test/test