欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Laravel

程序员文章站 2022-03-14 16:34:50
...

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
Laravel

  四:安装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):

Laravel

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

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='aaa@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')

aaa@qq.com

<!--在父模板(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\aaa@qq.com');
//配置群组路由
//admin后台路由
/**群组路由,可以将公共部分提出来公用
 * middleware中间件
 * prefix路由前缀
 * as别名
 * namespace命名空间
 * Controllers/admin/HomeController
 */
Route::group(['middleware'=>[],'prefix'=>'admin','as'=>'admin.','namespace'=>'Admin'],function (){
        Route::get('/','aaa@qq.com')->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>>
相关标签: laravel