Laravel

Laravel的安装

1.确认composer已经安装
2.配置homestead.yaml文件
sites:
      - map: laravel.xyz//域名配置
      to: /home/vagrant/code/laravel/public//入口文件路径
databases://数据库
      - laravel
3.用秘钥登录homestead
4.更换中国镜像:
composer config -g repo.packagist compose https://packagist.phpcomposer.com
5.指定laravel要安装的位置:cd ~/code
6.执行安装:composer create-project --prefer-dist laravel/laravel laravel

以上内容安装了一个项目名为laravel的laravel框架,以上终端命令需要在git中执行

lavarel框架基础配置

一:配置中国镜像:将一下代码放到composer.json文件的后面,
在phpstorm的终端里执行composer dump刷新
"repositories": {
    "packagist": {
         "type": "composer",
         "url": "https://packagist.laravel-china.org"
     }
}
  二:安装laravel plugin插件(实现代码追踪);
  三:配置laravel artisan,实现artisan的提示功能(Ctrl+数字键盘1)
      路径:(settings>Tools>Command Line Tool Support)

这里写图片描述
第二步

  四:安装laravel-ide-helper:
  执行:composer require barryvdh/laravel-ide-helper(安装)
       config/app.php里providers array添加:
       Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class,
    向app/Providers/AppServiceProvider.php中添加一下方法
public function register()
{
   if ($this->app->environment() !== 'production') {
         $this->app->register(\Barryvdh\LaravelIdeHelper\IdeHelperServiceProvider::class);
    }
    // ...
}

执行:php artisan ide-helper:generate,完成安装 。

五:安装模板提示(配置快捷键 Ctrl+数字键盘2):

模板提示

数据表创建,迁移,生成测试数据

1.创建数据表:在Command Line Tools中创建表UsertableSeeder,该表会自动生成在database/seeds下

artisan make:seeder UserTableSeeder

2.在database/seeds/DatabaseTableSeeder里面的run方法里添加一下代码,如下,来调用UserTableSeeder这个类

 public function run()
    {
         $this->call(UserTableSeeder::class);
    }

3.然后在UserTableSeeder这个类中的run方法中使用数据工厂来填充数据库用来 填充测试数据

public function run()
    {
        //利用数据工厂填充20条数据
        factory(\App\User::class,20)->create();
        //利用数据工厂填充完数据后更新第一条数据,作为管理员测试
        $user=\App\User::find(1);
        $user->name='孟菊';
        $user->email='2440979782@qq.com';
        $user->password=bcrypt('1');
        $user->phone=15*****11;
        $user->is_admin=0;
        $user->email_valid=0;
        $user->mobile_valid=0;
        $user->is_admin=1;
        $user->save();
    }

4.创建数据工厂:在Command Line Tools中创建数据工厂UserFactory,该数据工厂会自动生成在database/factories下

artisan make:factory UserFactory

5.设置字段规则:此处字段要和第三步里的字段保持对应关系

$factory->define(App\User::class, function (Faker $faker) {
    return [
          //主键自增不需要再设置
          //时间会在生成时自动填充,不需要设置
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
        'password' => '$2y$10$boIBKF4uGToNit1T3D.hrufFC3XXj5HbKSdYkZHFKp5dMXU24oVqe', // 1
        'phone'=>$faker->unique()->phoneNumber,
        'email_valid'=>0,
        'mobile_valid'=>0,
        'is_admin'=>0,
        'remember_token' => str_random(10),

    ];
});

6.创建迁移文件:在Command Line Tools中创建迁移文件,该数据工厂会自动生成在database/migration 下

php artisan make:migration create_users_table

7.在生成的迁移文件里增加字段,第5步和第3步里的字段都要根据这里的来设置

 public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            //主键id可以自动生成
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password');
            //令牌
            $table->rememberToken();
            //时间戳,自动生成
            $table->timestamps();
            $table->string('phone')->unique()->nullable()->comment('电话');
            $table->tinyInteger ('email_valid')->default(0)->comment('是否邮箱验证,1是,0否');
            $table->tinyInteger ('mobile_valid')->default(0)->comment('是否手机验证,1是,0否');
            $table->tinyInteger ('is_admin')->default(0)->comment('是否为管理员,1是,0否');
        });
    }

8.运行迁移:会在数据库生成一张名叫user的表

php artisan migrate

9.运行数据填充,以下命令可以删除数据表的内容并且重新生成新的测试数据

php artisan migrate:refresh --seed

模板复用和引用

模板的复用是把相同的东西提出来公用,在需要使用的地方可以用以下两种方式:
1.include引用default.php这个模板

@include('default.php')

2.@extends

<!--在父模板(index.blade.php)中用 @yield('content')作为占位符-->
<div>
@yield('content')
</div>
<!--在子模板中引用-->
<!--加载父模板-->
@extends('index.blade.php')
<!--在section之间写的内容会被放到相应占位符@yield('content')的位置-->
@section('content')
ahasjaidjwjkae
    @endsection

创建控制器类,加载模板,配置路由

1创建控制器:在Command Line Tools中创控制器UserController这个类,这个类会生成在Http/controllers/Home下

//创建一般路由
artisan make:controller Home/UserController
//创建资源路由
php artisan make:controller Home/UserController --resource

2.配置路由:在router/web.php中配置路由

//配置一般路由:这是个根路由,
Route::get('/','Home\LoginController@login');
//配置群组路由
//admin后台路由
/**群组路由,可以将公共部分提出来公用
 * middleware中间件
 * prefix路由前缀
 * as别名
 * namespace命名空间
 * Controllers/admin/HomeController
 */
Route::group(['middleware'=>[],'prefix'=>'admin','as'=>'admin.','namespace'=>'Admin'],function (){
        Route::get('/','HomeController@index')->name('home.index');

});

3.加载模板:

   //加载后台模板
    public function index(){
        return view('home.index.index');
    }

创建全局消息组件

1.在resource/views/layout下创建一个messgae.blade.php,公用

<!--在messgae.blade.php这个模板里放一些消息处理的js-->
<!--判断session是否success是否有值-->
@if(session ()->has ('success'))
    <script>
        require(['hdjs'], function (hdjs) {
            hdjs.swal({
                text: "{{session ()->get ('success')}}",
                button: false,
                icon: 'info'
            });
        })
    </script>
@endif

2.在admin/master.blade.php中引用messgae.blade.php

<!--引入hdjs文件,因为这个是基于hdjs的消息提示,所以要引入hdjs-->
@include('layout.hdjs')
{{--//引入消息模板,必须在引用hdjs文件之后引用--}}
@include('layout.message')

3.在后台写逻辑内容需要调用消息提示

 public function index(){
         //测试消息提醒
         //将消息提示存入session中
          session()->flash('success','成功登陆');
       session()->flash('warning','成功登陆');
    }

前台验证方法,手机短信验证,以及邮箱验证

1.创建控制器类:

php artisan make:controller Util/CodeController

2.配置路由
3.在CodeController里创建发送验证码的方法:

public function send(Request $request){
    //打印测试
    //Request 前台表单提交过来的数据信息
    dd($request->all ());
}

3.在注册页面引入hdjs

<!--因为验证方式的请求方式是异步请求,所以需要crsf令牌,需要在head之前引入以下:-->
    <meta name="csrf-token" content="{{csrf_token()}}">
    <!--如果没有引入令牌,在提交时会在控制台的network/XHR出现报错,状态码419-->
    <!--加载hdjs-->
@include('layout.hdjs')
<script>
    require(['hdjs'], function (hdjs) {
        let option = {
            //按钮  bt对应上面发送验证id
            el: '#bt',
            //后台链接
            url: '{{route('util.code.send')}}',
            //验证码等待发送时间
            timeout: 20,
            //表单,手机号或邮箱的INPUT表单
            input: '[name="account"]'
        };
        hdjs.validCode(option);
    })
</script>>
  • 1
    点赞
  • 1
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值