Laravel 博客开发

01.下载Laravel框架,并配置网站

composer create-project --prefer-dist laravel/laravel blog    // 创建项目

02.配置网站目录

生成key

php key:generate

将storage文件夹设置为可写

chmod -R 777 storage

复制.env文件

设置数据库前缀:

'prefix' => env('DB_PREFIX', ''), //设置数据库前缀

在.env中添加DB_PREFIX

DB_PREFIX=dr_

配置数据库

DB_DATABASE=news
DB_USERNAME=dog
DB_PASSWORD=123456

03.登录逻辑

A.加入验证码程序

验证码的引入,点击进入

B.验证码验证方法

路由写法:

Route::group(['prefix'=>'admin','namespace'=>'Admin','middleware'=>'web'],function(){
  Route::any('login','LoginController@login');    // 修改成了any方便接受
  Route::get('code','LoginController@code');  // 验证码生成
  Route::get('getcode','LoginController@getCode');  //  获取验证码
});

前端表格输入,必须引入{{ csrf_field() }}:


 @if (session('msg'))
   <p class="text-danger">注意:{{ session('msg') }}</p>
@else
 <p>Enter your username and password to log on:</p>
@endif

    <form role="form" action="" method="post" class="login-form">
     {{ csrf_field() }}
   <input type="text" name="username" placeholder="用户名..." class="form-username form-control" id="username">
    <input type="password" name="password" placeholder="密码..." class="form-password form-control" id="password">
   <input type="text" name="vcode" placeholder="验证码..." style="width:75%;" >
   <img src="{{ url('admin/code') }}" alt="" onclick="this.src='{{url("admin/code")}}?'+Math.random()">
    <button type="submit" class="btn">Sign in!</button>
  </form>     

后端代码,接受使用Input方法,引入
back()是返回,with后面接参数,默认session存储
use Illuminate\Support\Facades\Input;
详细代码如下:

namespace App\Http\Controllers\Admin;

use Illuminate\Support\Facades\Input;

class LoginController extends CommonController
{
    public function login(){
      if ($input=Input::all()) {
        if (strtoupper($input['vcode'])!=session('code')) {
          return back()->with('msg','验证码错误!');
        }
      } else {
        return view('admin.login');
      }
    }
}

C.创建用户表并插入一条数据

使用Laravel命令创建user表,点击查看

D.创建Model处理数据

在Http/Model/Admin中创建User的模型:
php artisan make:model Http/Model/Admin/User
模型代码如下:

namespace App\Http\Model\Admin;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    protected $table='user';   // 表名
    protected $primaryKey='user_id';   //主键
    public $timestamp=false;   // 默认不使用时间戳
}

E.登录代码

获取表单的数据,先判断验证码,然后根据用户名判断密码是否正确,如果正确,将数据存入session:

public function login(){
      if ($input=Input::all()) {
        if (strtoupper($input['vcode'])!=session('code')) {
          return back()->with('msg','验证码错误!');
        }
        $user = User::where('username',$input['username'])->first();
        if (!$user || $user&&Crypt::decrypt($user->password)!=$input['password']) {
          return back()->with('msg','用户名或密码错误!');
        }
        session(['user'=>$user]);   //登录成功后写入session
        return redirect('admin.index');   // 跳转到后台主页

      } else {
        return view('admin.login');
      }
    }

04.引入后台模板文件

参考Laravel基本命令中有关模板的部分,点击跳转

05.权限控制,退出登录状态

后台必须登录以后才能访问,这里需要添加中间件

A.在Kernel.php中添加admin.login

'admin.login' => \App\Http\Middleware\AdminLogin::class,  // 创建admin.login 中间件

B.路由写法如下:

Route::group(['prefix'=>'admin','namespace'=>'Admin','middleware'=>'web'],function(){
  // 登录页面
  Route::any('login','LoginController@login');
  Route::get('code','LoginController@code');  // 验证码生成
});

Route::group(['prefix'=>'admin','namespace'=>'Admin','middleware'=>['web','admin.login']],function(){
  // 后台主页面
  Route::any('index','IndexController@index');
  Route::any('info','IndexController@info');  // 信息显示
});

C.生成midddleware文件

php artisan make:middleware AdminLogin

通过判断登录成功后session('user')的值判断是否登录成功


namespace App\Http\Middleware;

use Closure;

class AdminLogin
{
    public function handle($request, Closure $next)
    {
      // 登录成功后会传入session('user')信息
      if (!session('user')) {
        return redirect('admin/login');
      }
      return $next($request);
    }
}

D.退出登录状态

路由中加入:

Route::group(['prefix'=>'admin','namespace'=>'Admin','middleware'=>['web','admin.login']],function(){
  Route::any('logout','LoginController@logout');  // 退出
});

控制器中添加

public function logout(){
      session(['user'=>null]);
      return redirect('admin/login');
    }

06.修改密码

点击进入修改密码页面,参考代码如下:https://www.cnblogs.com/carious/p/11353001.html

07.创建文章

A.Laravel创建文章分类

点击进入文章分类,参考代码如下:https://www.cnblogs.com/carious/p/11353823.html

posted @ 2019-08-12 17:55  cicarius  阅读(353)  评论(0编辑  收藏  举报