Laravel 框架

2016-11-03  本文已影响0人  Mr丶T

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('别名')}}

上一篇 下一篇

猜你喜欢

热点阅读