今天这部分内容可能比较杂,需要仔细一点。
使用YII2.0框架搭建一个后台管理系统。有登录功能的。当然,这个登录功能先不做,这个留到之后cookie和session操作的时候,再看。
后台管理系统,放到网站根目录下的backend目录中。
我这里使用的adminlte模板,功能挺强大的,有兴趣可以去看下。
官方网站:adminlte.io/
首先,我们先将html页面的公共头尾抽成公共的文件。
Yii2.0框架是有公共布局选项这个设置的:advanced/backend/views/layouts/main.php这个文件就是公共模板文件,在我这里就是公共头尾。
当然,如果你不喜欢main.php这个名字,这是可以改的,方法如下:
1:一劳永逸的方法:在根目录下的/common/config/main.php中添加:
'layout' => 'index',
2:比较麻烦的办法,在每个控制器(controller)中声明:
public $layout = ‘index’;
但是一般没有这么干的,主要是太麻烦了。
不过这条语句在你有不同需求的时候,比如说,你不同的页面想引入另一种模板布局的时候,你可以用这个语句来指定。
当然,如果你不想载入默认布局的时候,直接传false就可以了,命令如下:
public $layout = false;
还有一个问题就是,我们如何指定我们每个页面私有部分的输出位置呢?
很简单,在公共文件中我们想出书模板的部分,加上:
<?php echo $content;?>
公共文件的问题解决了。
那么我们在/backend/views/下建立对应的目录存放html文件(Yii2.0框架只支持PHP文件,因此在放入框架之前,我们需要将它的文件类型改成PHP)
我们再将整个项目需要的资源文件(css+js+image)放入/backend/web/assets/中
接下来,我们需要在页面中重新引入这些资源文件。
Yii2.0框架为我们提供了一条语句,可以直接访问到入口文件的同级目录。
Yii::$app->request->baseUrl;
这条语句可以直接访问到/backend/web/目录下,比如我们刚刚是将资源文件放至/backend/web/assets/中,那么前端调用资源文件的时候就是。
那么这样的话,理论上我们的前端页面部分就应该是完成了。毕竟都是静态页面,如果配置得当,下载的时候什么样子,现在就是什么样子。
视图层大概就是这样,现在我们来看下控制器层。
控制器层在/backend/controller/目录下。默认的控制器是SiteController控制器
当然,这个破玩意也是能改的,具体修改方法,请参见《Yii2.0框架修改默认控制器及控制器中的默认方法》我这里将它修改成index。
我们通过indexcontroller下的index方法来访问站点首页。
class IndexController extends BaseController { /** * 首页控制器 */ public function actionIndex() { return $this->render('index'); }/** * 驼峰写法外部访问 */ public function actionUpdateSession() { } }
路由这里YII2.0框架为我们提供了两种方法:
$this->render(); // 这样输出会载入默认布局。 $this->renderPartial(); //不会载入默认布局(也不会载入框架中载入的其他插件(jquery)) 复制代码
目前我们没有特殊需求,一般用不到$this->renderPartial();
不想载入默认布局,你在控制器里边加上
public $layout = false;
就可以了嘛。
这里再重复一下:Yii2.0框架中外部(浏览器url)可以访问的方法名前必须加上action。不然外部是访问不了的。
再有就是关于方法名驼峰写法的外部访问方法:如上面中的第二个方法所示:
actionUpdateSession方法。
index/update-session
当然,我们这里访问index/index就没这么麻烦了,经过我们的修改,直接输入你绑定的域名,就能直接访问了。
如果你做的一切都没有问题,理论上就是可以访问首页了。
有好的建议,请在下方输入你的评论,或者,你在搭建过程中遇到问题,也可以在下方留言,也许我可以帮你解决。