1:安装
步骤1: 配置通过国内镜像下载
composer config -g repo.packagist composer https://packagist.phpcomposer.com
步骤2: 通过composer安装laravel
composer create-project laravel/laravel 自定义存放文件夹名称
2:路由相关语法
Route::Http请求方式(请求的URL, 闭包函数或控制器方法) 响应单个请求
Route::match(['get','post'],请求的URL,闭包函数或控制器方法); 响应多个请求
Route::any(请求的URL, 闭包函数或控制器方法); 响应所有请求
Route::Http请求方式(请求URL地址/{name},闭包函数或控制器方法)->where(参数名,正则表达式)
Route::请求方式(URL/{参数1}/...,闭包函数或控制器方法)->where([参数1,正则表达式1...])
路由群组
Route::group([属性1=>值1,....,属性2=>值2], function(){
Route::http请求类型(请求URL,闭包函数或控制器方法)->where(参数名,正则)
...........
Route::http请求类型(请求URL,闭包函数或控制器方法)->where(参数名,正则)
})
3:artisan命令操作
1:控制器的创建
php artisan make:controller 平台名\控制器名Controller
注意:必须在项目根目录下执行,因为artisan在项目根目录下
2:模型的创建
php artisan make:model App\Http\Models\模型名
模型需要添加的几行代码
protected $table = '表名'; 设置表名
protected $fillable = ['字段1', '字段2'...]; 声明可以批量设置的属性
protected $dateFormat = 'U'; Unix时间戳填充数据(注:默认托管创建于更新于)
4:获取请求输入
方法1:
$request->isMethod(HTTP请求类型) 判断提交方式
$request->all() 获取所有数据
$request->input(参数名,默认值) 获取单个数据
$request->only([参数名1,...,参数名n]) 获取指定数据
$request->except([参数名1,...,参数名n]) 获取指定数据外的所有数据:
方法2:
Input::all() 获取所有数据
Input::get(参数名[,默认值]) 获取单个数据
Input::only([键1,...,键n]) 获取指定数据
Input::except([键1,...,键n]) 获取指定数据外的所有数据
5: 数据迁移
参考手册:http://laravelacademy.org/post/6964.html
1:调用方法声明创建字段
php artisan make:migration 数据库迁移名称 (改表数据)
php artisan make:migration create_表名_table --create=表(创建表)
php artisan make:migration update_表名_table --table=表名(修改表)
2:运行/撤销迁移
运行: php artisan migrate
撤销: php artisan migrate:rollback
注意:laravel 默认不可以修改表,需要安装doctrine/dbal工具库
解决:composer require doctrine/dbal
6: 填充数据
1:创建填充器
php artisan make:seeder 填充器名称(格式:表名TableSeeder)
2:运行填充器
php artisan db:seed --class=填充器名称
7: Tinker工具的使用
进入Tinker
php artisan tinker
在里面进行数据库的操作
8: Laravel加密方法
加密语法:Hash::make('admin888'); 或者 bcrypt('admin888');
校验语法:Hash::check('admin888', 密文);
9: 工厂文件的使用(填充数据)
1:在database下factories找到文件,打开后,复制已有格式,修改。
2:调用工厂文件
factory(App\Http\Models\模型名::class, 数据条数)->create()
脚下留心:工厂文件中定义的模型必须通过migration创建无法将无法找到模型
10: 页面布局语法
@yield('标识') 用于放置在公共文件里进行占位,指定填充位置
@extends('标识') 用于子文件继承公共文件
@section('标识', '默认值') 子填充父(公共区域) 填充内容比如'文字'
@section('标识')
存放子页面内容 子填充父(公共区域)填充内容'HTML代码'
@endsection
@include('视图标识', ['key' => 'value变量值']) 调取公共页面(一般多个子页面提取)
11: Session会话
脚下留心:Laravel中app\config\session.php文件重写了session机制
三种方式操作session
1:Http Request类的session方法
设置: $request->session()->put(键,值)
获取指定:$request->session()->get(键 [,默认值])
获取所有:$request->session()->all()
判断: $request->session()->has(键);
2:session辅助函数
设置:session([键1=>值1,...,键n=>值n])
获取:session(键)
3: Session facade门面 (通过Session类调用静态方法)
设置: Session::put(键,值);
获取指定: Session::get(键 [,默认值])
获取所有: Session::all()
判断: Session::has(key)
删除指定: Session::forget(key)
删除所有: Session::flush()
压入session数组: Session::push(key, value)
获取后删除: Session::pull(key)
闪存: Session::flash(key, value)
12: Cookie会话
语法:
设置:Cooke::make(键,值)
获取:Cooke::get(键)
脚下留心:设置cookie后必须加上withCookie函数否则响应头没有cookie
13: 中间件
创建语法
php artisan make:middleware 中间件名称 (注:Check功能名 大驼峰)
位置:app\Http\Middleware
使用步骤:
步骤一:创建中间件
步骤二:激活中间件(app\Http\Kernel.php)
步骤三:使用修改路由声明哪些路由需要通过中间件过滤
步骤三例子:
Route::group(['prefix'=>'', 'namesapce'=>'','middleware'=>''],function() {
Route::http请求类型(请求url,闭包函数或控制器方法)
...
Route::http请求类型(请求url,闭包函数或控制器方法)
});
14: 控制器数据验证
三种方式
1:控制器直接使用validate方法
$this->validate($request,验证规则 [,自定义提示信息])
2:单独创建验证类
语法:php artisan make:request 验证类名称 (注:Check模型名 大驼 峰)
位置:app\Http\Requests目录
注意:由于验证类作为方法参数直接使用,故需要在验证类里判断get 提交,返回空数组,避免报错。
3:使用validator门面验证
$validator = Validator::make(数组,验证规则 [,自定义提示信息])
$validator->passes() 判断是否成功:true-成功没有问题,false-失败有问题
$validator->fails() 判断是否失败:true-失败有问题,false-成功没问题
$validator->messages() 获取错误信息
视图输出验证提示代码
@if (count($errors) > 0)
@foreach ($errors->all() as $error)
- {{ $error }}
@endforeach
@endif
汉化提示信息
1)下载:https://github.com/caouecs/Laravel-lang
2)将src\zh-CN移动到resources\lang\中并更名为zh_CN
显示单个错误
语法:{{ $errors->first(name属性值) }}
15: 关联模型
一对一语法
步骤1:定义模型
public function 推荐表名 ()
{
return $this->hasOne(关联模型命名空间,关联模型公共字段,本模型公共字段);
}
步骤2:模型名::with(推荐表名)->get()
步骤3:
foreach($模型名s as $模型名) {
获取当前模型对应的表数据 $模型名->字段名
获取当前模型关联表数据 $模型名->with处名称->关联模型字段名;
}
一对多语法
步骤1:定义模型
public function 推荐表名s ()
{
return $this->hasMany(关联模型命名空间,关联模型公共字段,本模型公共字段);
}
步骤2:模型名::with(推荐表名s)->get()
步骤3:
foreach($模型名s as $模型名) {
获取当前模型对应的表数据 $模型名->字段名
获取当前模型关联表数据 (脚下留心:多条数据)
foreach($模型名->with处名称 as $关联表名) {
$关联表名->关联表字段
}
}
16: 资源控制器语法(RESTful)
创建资源控制器路由:Route::resource(URL信息,控制器);
创建资源控制器:php artisan make:controller 平台名\控制器名Controller --resource
17: 缓存/配置文件/文件存储
缓存语法
存储路径:storage\framework\cache
设置:Cache::put(键,值,缓存时间/分钟)
获取:Cache::get(键)
配置文件语法
config(config目录下的配置文件名称.键)
文件存储语法
$request->hasFile(上传框name属性值) 检测是否上传
$request->file(上传框name属性值)->isValid() 检测是否成功上传到服务器
$filename = $request->file(上传框name属性值)->store(子路径,存储驱动器名称);
----------------------------------------------
存储驱动器的名称:对应config/filesystems.php文件的声明
子路径:指会在config/filesystems.php文件声明的上传文件夹下再创建一个文件