Laravel框架

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)
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@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文件声明的上传文件夹下再创建一个文件
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容