我爱编程

Laravel+Vue开发笔记

2018-05-19  本文已影响0人  phpzhaoxuan

项目用到的前端库hdjs网址hdjs.hdphp.com

一、安装提示增强工具Laravel-ide-helper

1、下载:composer  require barryvdh/laravel/laravel-ide-helper

2、在app.php下  providers添加:Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,

3、php artisan ide-helper:generate(如果没有效果重新启动IDE,Phpstorm)

二、数据填充与数据迁移

1、创建hd表

php artisan make:migration create_tb_table --create=hd

2、创建模型并创建表

php artisan make:model Model/Admin -m

3.使用tinker与factory创建管理员初始数据

php artisan tinker

factory (App\Model\Admin\::class,3)->create();

4.数据回滚

php   artisan   migrate:rollback

三、解决mysql5.7以下版本不能数据迁移两种解决方案

1,

config文件夹下database.php

'charset' => 'utf8mb4',

'collation' => 'utf8mb4_unicode_ci',

修改

'charset' => 'utf8',

'collation' => 'utf8_unicode_ci',

2、

app/Providers文件夹下

AppServiceProvider.php

use Schema;

public  function boot()

{

Schema::defaultStringLength(191);

}

四、使用用户认证系统与独立设置guard进行登录处理

在config/auth.php 

'guards'=>[],

添加

'admin' => [

    'driver' => 'session',

    'provider' => 'admins',

],

在'providers' => [],

添加

'admins' => [

    'driver' => 'eloquent',

    'model' => App\Model\Admin::class,

],

在Model层添加

use Illuminate\Foundation\Auth\User;

模型继承User

五、使用中间件mideleware进项行权限登录验证

1、创建中间件

php artisan make:middleware AdminMiddleware

2、找到  Http\Middleware下的AdminMiddleware.php

引入 use Auth; 

 添加判断

if(!Auth::guard('admin')->check()){

    return redirect('/admin/login');

}

3、找到Http\kernel.php

在路由中间件 $routeMiddleware添加

'admin.auth'=>AdminMiddleware::class,

4.使用

在登录类

public function __construct()

{

    $this->middleware('admin.auth')->except(['loginForm','login']);

//excepts是哪个方法不执行

}

六、退出报错

QueryException in Connection.php line 647:SQLSTATE[42S22]: Column not found: 1054 Unknown column 'remember_token' in 'field list' (SQL: update `admins` set `remember_token` = 4rwLxz0HkIuhgE5DTojXqQ7OrE9IZcBae3vIgKfijsxtVMr33SDdvi7aGrhg where `id` = 1)

在Admin.php

添加

protected $rememberTokenName = ' ';

七、使用Request请求验证&bootstrap进行表单验证处理

php artisan make  request  AdminPost

namespace App\Http\Requests;

use Illuminate\Foundation\Http\FormRequest;

use Auth;

use Validator;

use Hash;

class AdminPost extends FormRequest

{

    /**

* Determine if the user is authorized to make this request.

*

    * @return bool

*/

    public function authorize()

{

        return Auth::guard('admin')->check();

}

    /**

* 添加验证规则

*/

    public function addValidator()

{

        //验证用户密码

        Validator::extend('check_password', function ($attribute, $value, $parameters, $validator) {

            return Hash::check($value, Auth::guard('admin')->user()->password);

});

}

    /**

* Get the validation rules that apply to the request.

*

    * @return array

*/

    public function rules()

{

        $this->addValidator();

        return [

            'password'              => 'sometimes|required|confirmed',

            'password_confirmation' => 'sometimes|required',

            'original_password'    => 'sometimes|required|check_password',

];

}

    /**

* 中文提示

*

    * @return array

*/

    public function messages()

{

        return [

            'password.required'                => '新密码不能为空',

            'password_confirmation.required'  => '确认密码不能为空',

            'password.confirmed'              => '两次密码输入不一致',

            'original_password.required'      => '原密码输入错误',

            'original_password.check_password' => '原密码输入错误',

];

}

}

八、组件提示消息flash

1、安装

composer require laracasts/flash

2、添加到app.php   providers下

Laracasts\Flash\FlashServiceProvider::class,

3、master.blade.php引入

@include(‘flash::message’)

添加

require(['bootstrap'],function ($) {

$('#flash-overlay-modal').modal();

});

4、执行

php artisan vendor:publish --provider="Laracasts\Flash\FlashServiceProvider"

九、创建资源管理器

php artisan make:controller Admin\TagController --resource

上一篇下一篇

猜你喜欢

热点阅读