美文网首页我爱编程
Laravel+Vue开发笔记

Laravel+Vue开发笔记

作者: phpzhaoxuan | 来源:发表于2018-05-19 19:41 被阅读0次

    项目用到的前端库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

    相关文章

      网友评论

        本文标题:Laravel+Vue开发笔记

        本文链接:https://www.haomeiwen.com/subject/puyadftx.html