[bh]Laravel 5.5.28框架简介 www.bhlaravel.com

2024-06-08 08:58

本文主要是介绍[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

  1. 提示:在laravel框架中,不允许向浏览器响应布尔值。
  2. JSON响应 return response()->json([ ‘name’ => ‘Abigail’, ‘state’ => ‘CA’]); 浏览器响应头 Content-Type:json;
  3. 重定向 https://learnku.com/docs/laravel/5.5/responses/1298#redirects
  4. 1

验证码 https://packagist.org/?query=captcha

  1. composer require mews/captcha
  2. 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使MembertablemembersprotectedprimaryKey属性,值是主键名称,如果需要使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 第四:(可选)定义 timestampsfalse,falsecreatedatupdatedat,false,publicfillable属性,表示使用模型插入数据时,允许插入到数据库的字段信息。格式是一维数组形式,修饰词: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

  1. Laravel框架中避免CSRF攻击很简单:Laravel自动为每个用户Session生成了一个CSRF Token,该Token可用于验证登录用户和发起请求者是否是同一人,如果不是则请求失败。【该原理和验证码的原理是一致】
  2. 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

  1. insert(数组)可以同时添加一条或多条,返回值是布尔类型。
  2. insertGetId(一维数组),只能添加一条数据,返回自增的id。
  3. update increment decrement 返回受影响行数
  4. get 取多行数据 first 取单行数据 value 获取单个字段的值
  5. delete

接收用户输入(与文档有区别)

  1. 获取请求https://learnku.com/docs/laravel/5.5/requests/1297#accessing-the-request
  2. 接收用户输入的类: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中信息。
  1. 在laravel中如果需要使用facades的话,但是又不想写那么长的引入操作:
    Use Illuminate\Support\Facades\Input
    则可以在config/app.php中定义长串的别名(在aliases数组中定义别名):
打印输出

在Laravel中友好输出函数:
dump()
dd() // =dump + die //dd函数之后的内容将不会继续执行;

控制器

  1. 自动生成 php artisan make:controller [路径/]Test02Controller

路由

  1. get post match anyhttps://learnku.com/docs/laravel/5.5/routing/1293#53ca0c
  2. 命名路由 -->路由别名 模版使用 {{route(‘route_alias’)}}
  3. 扩展补充:查看系统已经有的路由命令:#php artisan route:list
  4. // 针对分目录管理的控制器路由,其中的目录分隔符在此处已经变成了命名空间分隔符,因此得使用“\”
    Route::get(‘admin_test1’, ‘Admin\TestController@test1’);
  5. php artisan route:list | findstr article
  6. 2

项目创建

  1. 创建项目必须是空目录 composer create-project laravel/laravel=5.5.28 --prefer-dist ./
  2. php artisan --version 查看laravel版本
  3. php7.0 最大支持laravel版本 5.5.28

简介

  1. 数据库迁移工具、单元测试
  2. Laravel框架有一个特点,所有的URL访问都必须事先定好路由规则。
  3. httpd.conf配置文件需要开启的模块:
    LoadModule deflate_module modules/mod_deflate.so
    LoadModule rewrite_module modules/mod_rewrite.so
  4. 1
  5. 1

这篇关于[bh]Laravel 5.5.28框架简介 www.bhlaravel.com的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1041734

相关文章

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

业务协同平台--简介

一、使用场景         1.多个系统统一在业务协同平台定义协同策略,由业务协同平台代替人工完成一系列的单据录入         2.同时业务协同平台将执行任务推送给pda、pad等执行终端,通知各人员、设备进行作业执行         3.作业过程中,可设置完成时间预警、作业节点通知,时刻了解作业进程         4.做完再给你做过程分析,给出优化建议         就问你这一套下

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle

ZooKeeper 中的 Curator 框架解析

Apache ZooKeeper 是一个为分布式应用提供一致性服务的软件。它提供了诸如配置管理、分布式同步、组服务等功能。在使用 ZooKeeper 时,Curator 是一个非常流行的客户端库,它简化了 ZooKeeper 的使用,提供了高级的抽象和丰富的工具。本文将详细介绍 Curator 框架,包括它的设计哲学、核心组件以及如何使用 Curator 来简化 ZooKeeper 的操作。 1

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

Spring Framework系统框架

序号表示的是学习顺序 IoC(控制反转)/DI(依赖注入): ioc:思想上是控制反转,spring提供了一个容器,称为IOC容器,用它来充当IOC思想中的外部。 我的理解就是spring把这些对象集中管理,放在容器中,这个容器就叫Ioc这些对象统称为Bean 用对象的时候不用new,直接外部提供(bean) 当外部的对象有关系的时候,IOC给它俩绑好(DI) DI和IO

【Tools】AutoML简介

摇来摇去摇碎点点的金黄 伸手牵来一片梦的霞光 南方的小巷推开多情的门窗 年轻和我们歌唱 摇来摇去摇着温柔的阳光 轻轻托起一件梦的衣裳 古老的都市每天都改变模样                      🎵 方芳《摇太阳》 AutoML(自动机器学习)是一种使用机器学习技术来自动化机器学习任务的方法。在大模型中的AutoML是指在大型数据集上使用自动化机器学习技术进行模型训练和优化。