Laravel5.6 博客搭建系列二--搭建后台管理系统 

admin  

创建用户认证系统

本篇文章跟大家分享搭建后台管理认证系统以及创建后台视图模板

Laravel 中实现登录认证非常简单。实际上,几乎所有东西 Laravel 都已经为你配置好了。配置文件位于 config/auth.php,其中包含了用于调整认证服务行为的、文档友好的选项配置。

执行php artisan make:authphp artisan migrate 创建控制器以及需要的数据表。脚本会在目录app/Http/Auth 下创建一下几个文件:

  • 创建必须的控制器

    • LoginController 登录退出操作,继承App\Http\Controllers\Controller,所有的业务逻辑在trait AuthenticatesUsers中,可以通过设置属性$redirectTo改变登录之后的跳转地址,设置$redirectAfterLogout改变退出之后的跳转地址;

    • RegisterController 提供用户注册相关操作,所有业务逻辑在trait RegistersUsers

    • ForgotPasswordController 忘记密码,发送验证邮件相关操作

    • ResetPasswordController 重置密码相关操作

  • 添加路由:

routes/web.php文件中添加用户认证相关路由

Auth::routes();
  • 创建视图模板文件

    -layouts 文件夹,创建app.blade.php 作为整个应用的视图模板文件

    -auth 文件夹,分别创建登录,注册,找回密码等视图文件

创建后台管理首页

执行以下命令:

php artisan make:controller Admin\\DefaultController

脚本会在app\Http\Controlles下创建admin目录,并创建DefaultController文件,修改DefaultController文件,添加后台显示文章列表操作,添加以下代码:

    public function index()
    {
        return view('admin.default.index');
    }
  • 创建视图文件

在resources下创建admin/post目录,并在该目录下创建admin/post/index.blade.php文件,文件内容如下:

@extends('layouts.app')

@section('content')
<div class="container">
    welcome to Post Admin
</div>
@endsection
  • 修改路由route/web.php,限制后台必须登录

Route::get('admin', function () {
    return redirect('/admin/default');
});
Route::namespace('Admin')->middleware(['auth'])->group(function () {
    Route::resource('admin/default', 'DefaultController');
});

创建后台模板

很多情况下前后台使用的模板不同,因此需要给后台自定义视图模板。复制一份resources/layouts/app.blade.php 到resources/admin/layouts/main.blade.php

<a class="navbar-brand" href="{{ url('/') }}">
    {{ config('app.name', 'Laravel') }}
</a>

后面加入以下内容,给后台添加导航栏


<ul class="nav">
  <li class="nav-item">
    <a class="nav-link active" href="{{route('default.index')}}">{{ __('Dashbord') }}</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" href="#">{{ __('Posts') }}</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" href="#">{{ __('Tags') }}</a>
  </li>
  <li class="nav-item">
    <a class="nav-link " href="#">{{ __('Files') }}</a>
  </li>
</ul>

</head>前添加@yield('styles'),在</body>前添加@yield('scripts'),创建样式以及脚本模块,后续在视图文件中添加样式和js脚本

效果

访问 http://127.0.0.1:8000/admin/default 可以看到以下内容

image

本教程代码下载