【Laravel5.3 笔记整理三】Laravel的搭建、模板布局、中间件

一、使用 Laravel 搭建网站的前后台

1. 路由规则

(D:\phpStudy\PHPTutorial\WWW\laravel\routes\web.php)

// 前台路由
Route::group(['namespace'=>'Home'], function(){
    // 前台首页
    Route::get('/', "IndexController@index");
});

// 后台路由
// 通过路由组 提取 公共命令空间 和 公共的前缀
Route::group(['namespace'=>'Admin', 'prefix'=>'admin'], function(){
    // 后台首页
    Route::get('/', "IndexController@index");
    // 后台用户管理模块
    Route::resource('user', "UserController");
    // 后台商品管理模块
    Route::resource('goods', "GoodsController");
});

// 未提取公共命名空间 和 前缀的代码
Route::get('admin', "Admin\IndexController@index");
Route::resource('admin/user', "Admin\UserController");
Route::resource('admin/goods', "Admin\GoodsController");


2. 搭建控制器

(D:\phpStudy\PHPTutorial\WWW\laravel\app\Http\Controllers)

1) 新建 Admin 目录,存放后台控制器
2) 新建 Home 目录,存放前台控制器
3) 在前后台目录,根据路由的需要 创建控制器(以后台为例)
  • IndexController.php
namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;

use Illuminate\Http\Request;

use DB;

// 后台首页控制器
class IndexController extends Controller
{
    // 后台首页方法
    public function index()
    {
        echo "我是后台首页";
    }
}


3. 搭建页面

(D:\phpStudy\PHPTutorial\WWW\laravel\resources\views)

后台首页 为例

1) 后台首页控制器
public function index()
{
    // 引入页面
    return view('admin.index');
}
2) 在视图目录下,新建 admin目录,用于存放所有的后台页面
3) 在 admin目录下,新建后台首页文件 index.blade.php
4) 需要修改CSS样式 和 JS引入目录

​  一般建议大家把样式文件夹放到 public目录下

如:在 public 目录下,新建一个 admins 目录,将 css, js,img文件都放进去(注:此处不可以用admin,只能用 admins),然后到 index.blade.php 中,将文件路径修改,到页面刷新。

4. 完成用户模块

1)控制器如何书写

D:\phpStudy\PHPTutorial\WWW\laravel\app\Http\Controllers\Admin\UserController.php

2)页面如何书写

​D:\phpStudy\PHPTutorial\WWW\laravel\resources\views\admin\user


二、模板布局

0. 主要解决网站后台公共部分的修改

1. 需要在视图目录下新建一个Muban模板

2. 新建一个模板文件 admin.blade.php

<html>
    <head></head>
    <body>
        <!-- 不一样的地方需要使用 -->
        @yield('main')
    </body>
</html>

3. 普通页面如何书写

<! -- 继承模板 -->
@extends('Muban.admin')

<!-- 替换占位的内容 -->
@section
<!-- 内容 -->
<div class="col-md-10">
    <div class="jumbotron">
        <img src="/admins/img/4.jpg" height="310px" width="100%">
        <h2>后台管理系统</h2>
        <p>开发者:XXX</p>
    </div>    
</div>
@endsection

注:若跳转链接没有效果,看看是否是因为 form表单默认的提交数据,可以使用 onsubmit="return false" 禁止表单提交(目的是:让其只起跳转作用)



三、中间件

1. 路由如何书写

  • route/web.php
// 后台路由
// 通过路由组 提取公共命名空间 公共的前缀 和 中间件
Route::group(['namespace'=>'Admin', 'prefix'=>'admin', 'middleware'=>'adminLogin'], function(){
    // 后台首页
    Route::get('/', 'IndexController@index');
    // 后台用户管理模块
    Route::resource('user', 'UserController');
    // 后台商品管理模块
    Route::resource('goods', 'GoodsController');
});

2. 如何新建中间件

php artisan make:middleware adminLogin   // 创建了 adminLogin中间件

3. 需要注册一个中间件(告诉 Laravel框架 注册了一个中间件)

(D:\phpStudy\PHPTutorial\WWW\laravel\app\Http\kernel.php)

protected $routeMiddleware = [
    'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    'adminLogin' => \App\Http\Middleware\AdminLogin::class,
];

4. 打开中间件

(D:\phpStudy\PHPTutorial\WWW\laravel\app\Http\Middleware\adminLogin.php)

namespace App\Http\Middleware;

use Closure;

class adminLogin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        // 判断 session中是否存在用户数据
        // 如果存在,访问后台;不存在,请用户登录
        if (session('adminUserInfo')) {
            return $next($request);
        } else {
            // 让用户登录
            return redirect('/admin/login');
        }

        return $next($request);
    }
}

猜你喜欢

转载自blog.csdn.net/studyphp123/article/details/81835251
今日推荐