Laravel 框架的基本使用功能
2018-09-25 本文已影响36人
晨曦入诗
一, Laravel 中的路由、控制器、视图简单使用
- 路由简介:简单点说就是将用户的请求转发给程序进行处理作用,就是建立 url 和程序之间的映射;
- 基本路由:
Route::get('first', function(){ return 'first'})
;
Route::post('user', function(){ return 'user'})
;- 多请求路由:
Route::match([ 'get', 'post' ], 'multy', function () { return 'multy' })
;- 响应所有请求的路由:
Route::all('multy1', function () { return 'multy1' })
;- 路由参数:
Route::get('user/{id}', function ( $id ) { return $id; })
(必传参数);
Route::get('user/{name?}, function ($name = null) { return $name; })
(可选参数);- 扩展:把 name 的形式使用正则匹配
Route::get('user/{name?}, function ($name = null) { return $name; })->where('name','[A-Za-z]+')
;- 路由别名:
Route::get(user/center', ['as' => 'center',function() { return route('center') }])
;- 路由返回视图:
Route::get('shitu', function() { return view( 'shitu' ); })
;- 控制器和路由的结合使用:
Route::get('member/info', 'MemberController@info')
;
Route::get('member/info', ['uses' => 'MemberController@info'])
;
Route::any('member/info', ['uses' => 'MemberController@info'])
;- 输出试图:
return view( 'member-info' )
(原生视图);
return view( 'info' )
(默认视图);
return view( 'member.info' , ['name' => 'Bob', 'age' => 18])
(模板可以带变量);
二,模型的创建和使用
- 创建模型文件:
User.php
;- 模型的使用:
User::getMember()
;
三, 使用 DB_facade 对数据库进行增删改查
- 首先判断数据库是否连接成功:
$student = DB::select('select * from student')
;- 新增数据:
$bool = DB::insert('insert into student (name, age) value (?, ?)', ['bool','20'])
;- 更新数据:
$num = DB::update('update student set age=? where name=? ', ['16', 'bool'])
;- 进行有条件的查询:
$student = DB::select('select * from student where id > ?' , ['2'])
;- 删除数据:
$num = DB::delete('delete * from student where id = ?', ['2'])
;
四,查询构造器简介以及新增数据
查询构造器简介:
- Laravel 查询构造器提供了方便流畅的接口,用来建立以及执行数据库查找的语法;
- 使用 PDO 参数绑定,以保护应用程序免 sql 注入;因此传入参数不需要额外的特殊字符;
- 基本上满足所有的数据库操作,而且在所有支持的数据库系统上都可以执行。
- 使用查询构造器新增数据:
$bool = DB::table('student')-> insert (['name' => 'alice', 'age' => 20])
;- 获取插入数据自增id:
$id = DB::table('student') -> insertGetId(['name' => 'Alice1', 'age' => 26])
;- 想要插入多条数据:
DB::table('student') -> insert([ ['name' => 'Alice2', 'age' => 22], ['name' => 'Alice3', 'age' => 23] ])
;- 更新数据:
$num = DB::table('student')-> where('id', 2)->update('age' => 30)
;- 自增和自减:
$num = DB::table('student')->increment('age', 2)
;
$num = DB::table('student')->decrement('age', 3)
;- 自增和自减带条件的:
$num = DB::table('student')->where('id', 5)->increment('age', 4)
;
$num = DB::table('student')-> where('id', 6)-> decrement('age',5)
;- 自增和自减的时候其他条件发生了变化:
$num = DB::table('student')->where('id',3)->decrement('age', 4, ['name' => 'B'])
;- 删除数据:
$num = DB::table('student')->where('id', 3)->delete()
(单条);
$num = DB::table('student')->where('id', '>=', 5)->delete()
(删除多条数据);- 整表删除,谨慎使用:
DB::table('student')->truncate();
- 查询数据:
获取表中所有数据:$student = DB::table('student') -> get();
获取表中第一条数据:$student = DB::table('student)->first();
有条件的查询:$student = DB::table('student') -> where('id', '>=', 5) -> get();
给where()加多个条件:
$student = DB::table('student')->whereRaw('id >= ? and age >= ?',[ 5, 27]);
返回结果集中指定的字段:$name = DB::table('student')->pluck('name');
返回结果集中的字段:$name = DB::table('student')->lists('name');
设置指定的键作为下标:$name = DB::table('student')->lists('name','id');
可以查询字段select():$student = DB::table('student')->select('name','age')->get();
分段式的查询:DB::table('student')->chunk(2,function( $student){ return false;});
五、Eloquent ORM 简介
Laravel 所自带的 Eloquent ORM 是一个非常优美简洁的 ActiveRecord 实现,用来实现数据库操作,他的每个数据的表都有对应的模型(Model)用于数据表的交互。
- Eloquent ORM 查询:
Student:: all();
Student::find(5);
- 查询构造器在 ORM 中的使用,查询构造器中的所有函数都是可以在这里使用的:
$student = Student::get();
Student::chunk(2, function($student){ return false});
- Eloquent ORM 新增数据:
通过模型新增数据:
$user = new User();
$user->name = 'Jely';
$user->age = 3;
$user -> save();
使用模型的 create()方法新增数据,:
$user = User::create(['name' => 'Dave', 'age' => 3]);
注意不允许批量赋值,需添加:protected $fillable = ('name', 'age' );
- 通过模型修改数据:
$student = Student::find(7);
$student -> name = 'Hello';
$student->save();
结合查询语句进行批量的更新数据:Student::where('id', '>=', 5) -> update(['age' =>20 ]);
- ORM 删除数据:
通过模型删除:$student = Student::find(10); $student->delete();
通过主键删除:$num = Student::destroy(9,8);
删除指定条件的数据:Student::where('id', '>', 6)->delete();
- 生成 Url:
(1) 使用 Url :通过路由中的名称生成的Url;{{ url('urlTest') }}
(2)使用 action(): 通过指定的控制器方法名生成的 Url;
{{ action('StudentController@urlTest')}}
(3) 使用 route(): 通过路由的别名生成的 Url;{{ route('url') }}
六、Blade 模板简介
- Blade 模板是 Laravel 提供的一个既简单又强大的模板引擎;
- 和其他流行的 PHP 模板引擎不一样,Blade 并不限制你在视图中使用原生 php 代码;
- 模板的继承:
section():视图片段,@show 是把视图片段展示出来;
yield():给定片段的一个内容,相当于是一个占位符,没有实际意义;
extends():继承父类的一个 blade 模板;
parent();
- 基础语法以及 include 的使用:
(1) 模板中输出变量:
{{ $name }}
(2) 模板中调用 php 代码:{{ time() }}
或{{ date( 'Y-m-d', time()) }}
;
(3) 原样输出:@{{ $name }}
;
(4) 模板中的注释:<--!模板中的注释-->
(5) include 的使用:@include('student', ['me' => '子视图中变量的使用'])
;