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='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】@12 控制语句
下一篇: 小程序转发分享功能