本文主要是介绍[bh]Laravel 5.5.28框架简介 www.bhlaravel.com,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 关联模型 https://learnku.com/docs/laravel/5.5/eloquent-relationships/1333
- Cache缓存系统 https://learnku.com/docs/laravel/5.5/cache/1316
- Session会话控制 https://learnku.com/docs/laravel/5.5/session/1301
- Response响应 https://learnku.com/docs/laravel/5.5/responses/1298
- 验证码 https://packagist.org/?query=captcha
- 数据分页 https://learnku.com/docs/laravel/5.5/pagination/1328
- 文件上传 https://learnku.com/docs/laravel/5.5/filesystem/1319#file-uploads
- 自动验证 https://learnku.com/docs/laravel/5.5/validation/1302
- 查看验证错误信息 https://learnku.com/docs/laravel/5.5/validation/1302#quick-displaying-the-validation-errors
- 模型操作
- 模型定义
- 基本操作
- CSRF是跨站请求伪造(Cross-site request forgery)的英文缩写
- 模版继承@extends 包含@include
- Blade模板变量输出
- 视图文件的命名与渲染
- 数据库请求构建器
- 接收用户输入(与文档有区别)
- 打印输出
- 控制器
- 路由
- 项目创建
- 简介
关联模型 https://learnku.com/docs/laravel/5.5/eloquent-relationships/1333
Cache缓存系统 https://learnku.com/docs/laravel/5.5/cache/1316
Laravel 为不同的缓存系统提供了统一的 API(在框架中的写法)。缓存配置位于 config/cache.php。在该文件中你可以指定在应用中默认使用哪个缓存驱动。Laravel 目前支持主流的缓存后端如 Memcached 和 Redis 等。
主要方法:
Cache::put() 会覆盖原有值
Cache::get()
Cache::add() 方法将不存在于缓存中的数据放入缓存中,如果存放成功返回 true ,否则返回 false,不会覆盖已存在的键的值
Cache::pull()
Cache::forever() 会覆盖原有值
Cache::forget()
Cache::has()
系统默认是使用文件缓存,其缓存文件存储的位置位于(storage/framework/cache/data):
Cache::increment(‘key’);
Cache::increment(‘key’, $amount);
Cache::decrement(‘key’);
Cache::decrement(‘key’, $amount);
获取并存储 $value = Cache::remember(‘key’, $minutes, function() {}) 比较典型的操作就是在获取微信的accesstoken的时候可以使用。原因是accesstoken本身一天只有2000次的配额,而其有7200s的有效期,在有效期内可以不用去刷新请求。
Session会话控制 https://learnku.com/docs/laravel/5.5/session/1301
Session::put('key', 'value'); Session中存储一个变量
$value = Session::get('key'); Session中获取一个变量
$value = Session::get('key', 'default'); Session中获取一个变量或返回一个默认值(如果变量不存在)
$value = Session::get('key', function() { return 'default'; });
Session::all(); Session中获取所有变量
Session::has('users') 检查一个变量是否在Session中存在
Session::forget('key'); Session中删除一个变量
Session::flush(); Session中删除所有变量
补充:session方法也可以在视图中使用,如:{{ Session::get('code')}};
在后期如果使用Laravel框架自带的验证功能模块(Auth)的话,则session就可以不需要使用了。另外,在laravel框架中还支持快捷函数session(),也可以设置和使用session的。
两个语法:语法1:设置sessionsession([key => value]);语法2:获取session的值session(key);
Response响应 https://learnku.com/docs/laravel/5.5/responses/1298
- 提示:在laravel框架中,不允许向浏览器响应布尔值。
- JSON响应 return response()->json([ ‘name’ => ‘Abigail’, ‘state’ => ‘CA’]); 浏览器响应头 Content-Type:json;
- 重定向 https://learnku.com/docs/laravel/5.5/responses/1298#redirects
- 1
验证码 https://packagist.org/?query=captcha
- composer require mews/captcha
- https://github.com/mewebstudio/captcha
数据分页 https://learnku.com/docs/laravel/5.5/pagination/1328
显示分页结果 https://learnku.com/docs/laravel/5.5/pagination/1328#displaying-pagination-results
文件上传 https://learnku.com/docs/laravel/5.5/filesystem/1319#file-uploads
关于项目中使用路径(“./”与“/”)的说明:
如果一个路径是给php代码使用的则建议使用“./”,如果路径是给前端浏览器使用的则使用“/”。【在后端代码中,/表示的不是站点或项目根目录,而是表示磁盘根目录】
自动验证 https://learnku.com/docs/laravel/5.5/validation/1302
可用的验证规则 https://learnku.com/docs/laravel/5.5/validation/1302#available-validation-rules
https://www.jianshu.com/p/9e7aa6fe81ab
安装语言包 composer require laravel-lang/lang:~3.0 https://github.com/Laravel-Lang/lang
Copy the folders (and JSON files) of languages that you want to use, into the directory resources/lang of your Laravel application (or app/lang in Laravel 4).
config/app.php ‘locale’ => ‘zh-CN’,
注意:并不是所有的字段都有对应的翻译(或者有的翻译可能不是很准确),如果想自己定义翻译,则需要去修改语言包文件代码
查看验证错误信息 https://learnku.com/docs/laravel/5.5/validation/1302#quick-displaying-the-validation-errors
正如前面所提到的,Laravel 会自动把用户重定向到先前的位置。另外,所有的验证错误信息会被自动 闪存至 session。
$this->validate($request, [// 此处是一个键值数组 “验证的字段名” => "规则1|规则2|规则3...."'name' => 'required|min:2|max:20|unique:member',//string 类型默认验证最小长度,最大长度'age' => 'required|integer|min:1|max:100',//int 类型默认验证最小值最大值'email' => 'required|email',// 验证码验证规则'yzm' => 'required|captcha']
模型操作
Eloquent ORM https://learnku.com/docs/laravel/5.5/eloquent/1332 find get all save create update delete
总之一句话:在DB::table中能使用的方法,在模型中同样可以使用。
DB::table(‘xxx’) 等价于 Xxx模型
模型定义
第一:(必做)定义一个 t a b l e 属 性 , 值 是 不 要 前 缀 的 表 名 ( 真 实 的 表 名 ) , 如 果 不 指 定 则 使 用 类 名 的 复 数 形 式 作 为 表 名 。 如 果 模 型 为 M e m b e r 模 型 在 不 指 定 t a b l e 属 性 的 情 况 下 , 其 默 认 会 去 找 m e m b e r s 表 。 修 饰 词 : p r o t e c t e d 第 二 : ( 可 选 ) 定 义 table属性,值是不要前缀的表名(真实的表名),如果不指定则使用类名的复数形式作为表名。如果模型为Member模型在不指定table属性的情况下,其默认会去找members表。修饰词:protected 第二:(可选)定义 table属性,值是不要前缀的表名(真实的表名),如果不指定则使用类名的复数形式作为表名。如果模型为Member模型在不指定table属性的情况下,其默认会去找members表。修饰词:protected第二:(可选)定义primaryKey属性,值是主键名称,如果需要使AR模式的find方法,则可能需要指定主键(Model::find(n)),在主键字段不是id的时候则需要指定主键。修饰词:protected
第三: (可选)定义 t i m e s t a m p s 属 性 , 值 是 f a l s e , 如 果 不 设 置 为 f a l s e , 则 默 认 会 操 作 表 中 的 c r e a t e d a t 和 u p d a t e d a t 字 段 , 我 们 表 中 一 般 没 有 这 两 个 字 段 , 所 以 设 置 为 f a l s e , 表 示 不 要 操 作 这 两 个 字 段 。 修 饰 词 : p u b l i c 第 四 : ( 可 选 ) 定 义 timestamps属性,值是false,如果不设置为false,则默认会操作表中的created_at和updated_at字段,我们表中一般没有这两个字段,所以设置为false,表示不要操作这两个字段。修饰词:public 第四:(可选)定义 timestamps属性,值是false,如果不设置为false,则默认会操作表中的createdat和updatedat字段,我们表中一般没有这两个字段,所以设置为false,表示不要操作这两个字段。修饰词:public第四:(可选)定义fillable属性,表示使用模型插入数据时,允许插入到数据库的字段信息。格式是一维数组形式,修饰词:protected(当使用模型的create、save方法的时候最好就得写上这个属性) ,反向指定的属性叫做:$guarded
基本操作
模型的使用:模型在控制器中的使用方式有2种
①直接像使用DB门面一样的操作方式:以调用静态方法为主的形式,该形式下模型不需要实例化,例如:Member::get() 等价于 DB::table(‘member’) -> get();
②实例化模型然后再去使用模型类(普通)
例如: m o d e l = n e w M e m b e r ( ) ; model = new Member(); model=newMember();model -> get();
两种形式的选择标准:
如果使用的方法都是laravel框架自带的,则任意选择;
如果使用的方法有用户自己在模型中定义的,使用第②种形式。
CSRF是跨站请求伪造(Cross-site request forgery)的英文缩写
https://learnku.com/docs/laravel/5.5/csrf/1295
- Laravel框架中避免CSRF攻击很简单:Laravel自动为每个用户Session生成了一个CSRF Token,该Token可用于验证登录用户和发起请求者是否是同一人,如果不是则请求失败。【该原理和验证码的原理是一致】
- laravel中关闭CSRF的方法 https://blog.csdn.net/wangrui12138/article/details/69548702
模版继承@extends 包含@include
https://blog.csdn.net/weixin_44535476/article/details/89074893
继承语法:
子模版中按以下语法书写:
@extends(‘需要继承的模版文件名’) 其名称要是完整的路径,类似view视图路径
通过section标签绑定区块/部件到父级页面,区块名称就是父级页面yield标签的参数名。
@section(区块名称)
代码
@endsction
Blade模板变量输出
https://blog.csdn.net/qq_41825819/article/details/101165897
Laravel 文档阅读:Blade 模版 https://learnku.com/docs/laravel/5.5/blade/1304
@if($id =='12')it is {{$12}}
@elseit is 11
@endif
@foreach($user_list as $user)<p>it is {{$user->id}}</p>
@endforeach
视图文件的命名与渲染
(1)文件名习惯小写(建议小写)
(2)文件名的后缀是 .blade.php(因为laravel里面有一套模板引擎就是使用blade,可以直接使用标签语法{{ $title }}, 也可以使用原生的php语法显示数据。)
(3)需要注意的是也可以使用.php结尾,但是这样的话就不能使用laravel提供的标签{{ $title }}语法显示数据,只能使用原生语法 <?php echo $title;?> 显示数据
两个视图文件同时存在,则.blade.php后缀的优先显示。
(4) return view(‘admin.test.test3’, compact(‘data’));
展示视图的方法:
return view(‘视图文件的名称’);
视图可以进行分目录管理的,例如需要展示home/test/test2视图,则可以写成:
return view(‘home/test/test2’) 当然也支持点写法:view(‘home.test.test2’)
提示:变量在视图中展示的时候,在原先PHP文件中怎么写,在视图中依旧按照原先的方式进行编写,只需要写好之后在最外层套2个“{ }”即可。例如对于时间戳的格式化:{{date(‘Y-m-d H:i:s’,$data)}}
数据库请求构建器
https://learnku.com/docs/laravel/5.5/queries/1327#introduction
- insert(数组)可以同时添加一条或多条,返回值是布尔类型。
- insertGetId(一维数组),只能添加一条数据,返回自增的id。
- update increment decrement 返回受影响行数
- get 取多行数据 first 取单行数据 value 获取单个字段的值
- delete
接收用户输入(与文档有区别)
- 获取请求https://learnku.com/docs/laravel/5.5/requests/1297#accessing-the-request
- 接收用户输入的类:Illuminate\Support\Facades\Input
Facades:“门面”的思想。门面是介于一个类的实例化与没有实例化中间的一个状态。其实是类的一个接口实现。在这个状态下可以不实例化类但是可以调用类中的方法。说白了就是静态方法的调用。
Input::get(‘参数的名字’, ‘如果参数没有被传递使用该默认值’) //类似php里三元运算符
Input::all(): 获取所有的用户的输入
Input::get('参数的名字'): 获取单个的用户的输入
Input::only([ ‘id’,’age’]): 获取指定几个用户的输入
Input::except([ ‘id’,’age’]): 获取指定几个用户的输入以外的所有的参数
Input::has('name'):判断某个输入的参数是否存在上述方法既可以获取get中的信息,也可以获取post中信息。
- 在laravel中如果需要使用facades的话,但是又不想写那么长的引入操作:
Use Illuminate\Support\Facades\Input
则可以在config/app.php中定义长串的别名(在aliases数组中定义别名):
打印输出
在Laravel中友好输出函数:
dump()
dd() // =dump + die //dd函数之后的内容将不会继续执行;
控制器
- 自动生成 php artisan make:controller [路径/]Test02Controller
路由
- get post match anyhttps://learnku.com/docs/laravel/5.5/routing/1293#53ca0c
- 命名路由 -->路由别名 模版使用 {{route(‘route_alias’)}}
- 扩展补充:查看系统已经有的路由命令:#php artisan route:list
- // 针对分目录管理的控制器路由,其中的目录分隔符在此处已经变成了命名空间分隔符,因此得使用“\”
Route::get(‘admin_test1’, ‘Admin\TestController@test1’); - php artisan route:list | findstr article
- 2
项目创建
- 创建项目必须是空目录 composer create-project laravel/laravel=5.5.28 --prefer-dist ./
- php artisan --version 查看laravel版本
- php7.0 最大支持laravel版本 5.5.28
简介
- 数据库迁移工具、单元测试
- Laravel框架有一个特点,所有的URL访问都必须事先定好路由规则。
- httpd.conf配置文件需要开启的模块:
LoadModule deflate_module modules/mod_deflate.so
LoadModule rewrite_module modules/mod_rewrite.so - 1
- 1
这篇关于[bh]Laravel 5.5.28框架简介 www.bhlaravel.com的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!