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对应上面发送验证idel: '#bt',//后台链接url: '{{route('util.code.send')}}',//验证码等待发送时间timeout: 20,//表单,手机号或邮箱的INPUT表单input: '[name="account"]'};hdjs.validCode(option);})
</script>>
















