阿里云

博客系统开发-后台模块创建及相关路由配置

今天来说一下“博客系统开发-后台模块创建及相关路由配置”,继昨天‘博客开发-框架安装及网站配置,我们今天来写后台模块、配置强制路由模式、创建后台公共控制器、首页控制器、登录控制器及相关路由配置。


一、创建后台模块


在phpstrom中使用快捷键F5复制index模块为admin模块,这样我们的application下就存在两个模块【index和admin】模块。如下图:


image.png



二、修改配置文件


我们修改application下面的config文件夹内的app.php文件,将100行、104行配置更改为true。如下图:


image.png


三、创建后台控制器


将admin模块下controller下的index.php内的命名空间更改,如下:

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/5/9 0009
 * Time: 下午 9:37
 */
namespace app\admin\controller;

class Index extends Common
{
    /**
     * 后台首页
     * @return \think\response\View
     */
    public function index()
    {
        return view();
    }
}


你会发现控制器里面继承了Common控制器,是的,我们需要在admin模块下的controller中创建Common控制器,如下:

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/5/9 0009
 * Time: 下午 9:37
 */
namespace app\admin\controller;

use think\App;
use think\Controller;

class Common extends Controller
{
    
}


然后创建Login控制器,代码如下:

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/5/9 0009
 * Time: 下午 9:38
 */
namespace app\admin\controller;

use think\Controller;

class Login extends Controller
{
    /**
     * 登录页面
     * @return \think\response\View
     */
    public function index()
    {
        return view();
    }
}


编写Common控制器中的逻辑代码,如下:

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2019/5/9 0009
 * Time: 下午 9:37
 */
namespace app\admin\controller;

use think\App;
use think\Controller;

class Common extends Controller
{
    public function __construct(App $app = null)
    {
        parent::__construct($app);
        $userName = session('userName','','thinkBlog');
        if($userName){
            $this->assign('userName',$userName);
        }else{
            $this->redirect('/admin/login.html');
        }
    }
}



四、路由规则


我们采用路由分组模式编写全站路由规则(对请求地址进行限定):

<?php

Route::group('admin', function () {
    Route::get('', 'admin/Index/index');    //后台首页
    Route::group('login', function () {
        Route::get('/', 'admin/Login/index')->ext('html');   //登录
        Route::post('getLogin', 'admin/Login/login')->ext('html');   //登录处理
        Route::get('code', 'admin/Login/code')->ext('html'); //验证码
        Route::post('out', 'admin/Login/out')->ext('html');  //退出
    });
});


代码已经上传至码云,前往查看

喜欢就点个赞吧