Laravel 框架

1.路由:通过路由将请求发送至处理函数

2.Laravel是简洁优雅的PHP web开发框架,具有富于表达性且简洁的语法,易于理解且强大的,提供强大的工具以开发大型健壮的应用,具有验证/路由/session/缓存/数据库迁移工具/单元测试等常用的工具和功能

3.Laravel版本5.1和5.2需要使用PHP 5.5.9+

4.文件夹分类:app:核心代码,业务逻辑

Http:编写控制器文件夹

bootsteap:自动启动和加载配置

config:配置文件

database:数据库填充和迁移文件

public:入口,项目静态文件(图片,js等)

resources:视图及原始的资源文件

views:视图存放文件夹

storage:编译后的模板文件,缓存,session等

tests:单元测试文件夹

cendor:以来模块

5.Laravel路由:

(1)路由简介:用户请求转发给相应程序进行处理;作用是简历url和程序直接的映射;请求类型:get/post/put/patch/delete

(2)基本路由:Route::请求类型('方法名',function(){});

(3)多请求路由:指定请求类型Route::match(['请求类型','请求类型'],'方法名',function(){});不指定请求类型:Route::any('方法名',function(){});

(4)路由参数:Route::请求类型('文件/{参数}',function(参数){}); 带正则Route::请求类型('文件/{参数}',function(参数){})->where(['参数'=>'正则',...]);

(5)路由别名(用route生成别名对应的url):Route::请求类型('文件',['as'=>'别名',function(){}]);

(6)路由群组(针对多个群组进行设置):Route::group(['prefix']=>'前缀名',function(){});

(7)路由中输出视图:Route::请求类型('view',function(){});

6.Laravel控制器:

(1)新建控制器:

namespace App\Http\Controllers;

class 控制器名 extends Controller{

public function 方法名(){

进行处理

}

}

(2)控制器和路由关联:

Route::请求类型('路由名称','控制器名称@方法名称');

Route::请求类型('路由名称',['uses'=>'控制器名称@方法名称']);

(3)关联后,路由特性怎么使用:

别名:Route::请求类型('路由名称',['uses'=>'控制器名称@方法名称','as'=>'别名']);

参数绑定:Route::请求类型('路由名称/{参数}',['uses'=>'控制器名称@方法名称']); 控制器传入 参数

正则限制:Route::请求类型('路由名称/{参数}',['uses'=>'控制器名称@方法名称'])->where('参数','限制条件'); 控制器传入 参数

7.Laravel视图(一个控制器对应一个文件夹)

(1)新建视图:

resources/views/文件夹名/文件名

(2)输出视图:

namespace App\Http\Controllers;

class 控制器名 extends Controller{

public function 方法名(){

return view('文件名');

}

}

加入变量:

namespace App\Http\Controllers;

class 控制器名 extends Controller{

public function 方法名(){

return view('文件名',['变量名称'=>'变量值',...]);

}

}

输出变量:{{变量名称}}

8.Laravel模型

(1)新建模型:

app/文件名

namespace App;

use Illuminate\Database\Eloquent\Model;

class 模型名称 extends Model{

public static function 方法名(){

进行处理

}

}

(2)模型使用:

控制器中进行调用

9.Laravel数据库操作(DB facade(原始查找)/查询构造器/Eloquent ORM)

(1)新建数据表与连接数据库

新建数据表:使用命令新建数据表

连接数据库:config/database.php/mysql方法

.env/修改数据库配置文件

(2)使用DB facade实现CURD

第一步: namespace App\Http\Controllers;

class 控制器名 extends Controllers{

public function 方法名(){

进行处理(打印另一种方法:dd)

DB::select('sql语句'); 查询(返回数组)

DB::insert('sql语句'); 插入(返回布尔值)

DB::update('sql语句'); 修改(返回修改行数)

DB::delete('sql语句'); 删除(返回删除行数)

}

}

第二步: Route::请求类型('路由名称',['uses'=>'控制器名称@方法名称']);

10.Laravel查询构造器:

(1)简介及新增数据:

简介:Laravel查询构造器提供方便/流畅的接口,用来建立及执行数据库查找语法;使用PDO参数绑定,以保护应用程序免于SQL注入因此传入的参数不需额外转义特殊字符;基本可以满足所有数据库操作,在所有支持的数据库系统上都可以执行;

新增:

public function 方法名称(){

DB::table('表名')->insert(['字段名'=>'字段值',...]); 插入(返回布尔值)

DB::table('表名')->insertGetId(['字段名'=>'字段值',...]) 插入获取自增ID

DB::table('表名')->insert(['字段名'=>'字段值',...],['字段名'=>'字段值',...],...); 插入多条数据

}

(2)修改数据:

更新为制定内容:

public function 方法名称(){

DB::table('表名')->where(条件)->update(['字段名'=>'字段值',...]); 修改(返回数量)

}

自增和自减:

public function 方法名称(){

DB::table('表名')->increment('字段名'); 修改自增(返回行数,默认1)

DB::table('表名')->increment('字段名',数量); 修改自增(返回行数)

DB::table('表名')->decrement('字段名'); 修改自增(返回行数,默认1)

DB::table('表名')->decrement('字段名',数量); 修改自增(返回行数)

加入条件:DB::table('表名')->where(条件)->自增自减('字段名'); 修改(返回行数)

DB::table('表名')->where(条件)->自增自减('字段名',数量,['字段名'=>'字段值']); 修改多个字段(返回行数)

}

(3)删除数据:

delete:

public function 方法名称(){

DB::table('表名')->where(条件)->delete(); 删除(返回行数)

}

truncate:

public function 方法名称(){

DB::table('表名')->truncate(); 清空数据表()

}

(4)查询数据:

get():

DB::table('表名')->get(); //获取所有数据

first():

DB::table('表名')->first(); //获取第一条数据

where():

DB::table('表名')->where(条件)->get(); //获取要求数据

DB::table('表名')->whereRaw(多个条件)->get(); //获取多个条件要求数据

pluck():

DB::table('表名')->pluck('字段名'); //获取结果集中指定字段

lists(指定某个键为下标):

DB::table('表名')->lists('字段名','字段名'); //获取结果集中指定字段

select():

DB::table('表名')->select('字段名','字段名',...)->get(); //返回指定字段名的值

chunk():

DB::table('表名')->chunk(数量,function(变量名){}); //查找内容分段显示

(5)聚合函数:

count(统计表记录数):

public function 方法名称(){

DB::table('表名')->count(); //返回数量

}

max(返回最大值):

public function 方法名称(){

DB::table('表名')->max('字段名'); //返回数量

}

min(返回最小值):

public function 方法名称(){

DB::table('表名')->min('字段名'); //返回数量

}

avg(返回平均数):

public function 方法名称(){

DB::table('表名')->avg('字段名'); //返回数量

}

sum(返回和):

public function 方法名称(){

DB::table('表名')->sum(); //返回数量

}

11.Laravel数据库操作 ORM

(1)ORM简介/模型的建立及查询数据:

简介:优美简洁的ActiveRecord实现,用来实现数据库操作;每个数据表中有一个与之对应的模型用于和数据表交互;

模型的建立:

namespace App;

use Illuminate\Database\Eloquent\Model;

class 模型名 extends Model{

protected $table = '表名'; //ID主键

protected $primaryKey = '主键名'; //指定主键

}

ORM查询:

all():

public function 方法名称(){

模型名称::all(); //返回集合

}

find():

public function 方法名称(){

模型名称::find(); //返回集合

}

findOrFail(根据主键查找,没有抛出异常):

public function 方法名称(){

模型名称::findOrFail(); //返回集合

}

查询构造器在ORM中的使用:

public function 方法名称(){

模型名称::get(); //返回集合

}

(2)ORM新增数据/自定义时间戳/及批量赋值:

模型新增数据(自定义时间戳):

public function 方法名称(){

new 模型名称();

模型变量->属性名称=属性值;

模型变量->save(); //返回布尔值‘

return time(); //获取时间,已转换

}

模型Create方法新增数据(批量赋值,在模型中添加批量赋值的字段):

public function 方法名称(){

模型名称::create(['变量名'=>'变量值'],...);

模型名称::firstOrCreate(['变量名'=>'变量值']); //以属性查找用户,没有则新增

模型名称::firstOrNew(['变量名'=>'变量值']); //以属性查找,没有则新建实例,需要保存则调用save方法

}

(3)ORM修改数据:

模型更新:

public function 方法名称(){

模型名称::find(主键ID);

模型变量->变量名 = '变量值'; //布尔值

}

查询语句批量更新:

public function 方法名称(){

模型名称::where(条件)->update(['变量名'=>'变量值'],...);

}

(4)ORM删除数据:

模型删除:

public function 方法名称(){

模型名称::find(主键ID);

模型变量->delete(); //布尔值

}

主键值删除:

public function 方法名称(){

模型名称::destroy(主键ID值); //影响行数

模型名称::destroy(主键ID值,...); //影响行数

模型名称::destroy([主键ID值,...]); //影响行数

}

条件删除:

public function 方法名称(){

模型名称::where(条件)->delete(); //影响行数

}

12.Laravel Blade模板引擎

简介及模板继承的使用:

简介:简单强大的模板引擎;不限制在视图中使用原生PHP代码;Blade视图页面被编译成原生PHP代码并缓存起来,除非模板文件被修改,否则不会重新编译;

继承:

理由:维护方便;编写方便;

section:(定义视图片段,可扩展)

public function 方法名称(){

return view('模板路径');

}

yield:(定义视图片段,不可扩展)

@yield

extends:

@extends('继承路径')

parent:

@section('重写路径');

@parent //父模板

内容

@stop

基础语法及include的使用:

模板输出变量:

{{变量名称}}

模板调用PHP:

{{代码}}

原样输出:

@{{变量}}

模板注释:

{{--  --}}

include使用:

@include('路径',传值);

流程控制:

if:

@if(条件)

输出

@elseif(条件)

输出

@else

输出

@endif

unless(相当于if的取反):

@unless(条件)

输出

@endunless

for:

@for(条件($i))

输出

@endfor

foreach:

@foreach(变量名称 as 变量名称)

{{变量名称->字段名}}

@endforeach

@forelse(变量名称 as 变量名称)

{{变量名称->字段名}}

@empty

输出

@endforelse

模板中的URL(常用url/route,方便):

*url(路由名称生成):

模板:{{url('路有名')}}

action(指定控制器及方法名):

模板:{{action('控制器名@方法名')}}

*route(路由别名生成):

模板:{{route('别名')}}

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

推荐阅读更多精彩内容