首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用 Laravel Collections 类编写神级代码

不过,初学者可能并没有注意到,集合提供了超过 90 个以上的方法来操作底层数据。更妙的几乎所有的方法都支持链式操作,能够让你的代码读起来就像一篇散文一样。...现在的代码不仅顺畅不少,并且方法实现时无需借助注释告诉我们它们处理什么问题。 不过,还存在一个问题阻止我们的代码不如完美阶段......提示: 如果你希望新方法随处可用,你应该将它们添加到服务提供喜欢创建一个 MacroServiceProvider 实先这个功能,对于你来说随你喜欢就好。...查看官方文档获取更多这个迷人的类库的使用细节:https://laravel.com/docs/collections 提示: 你还可以获取这个 Collection 类独立安装包,使用非 laravel...如果你有兴趣,可以 follow @mattkingshott 原文 How Laravel Collections lead to Zen Code

2.1K20

laravel 模型Eloquent ORM 查询

每个数据库表都有一个对应的「模型」用来与该表交互。你可以通过模型查询数据表的数据,以及在数据表插入新记录。 开始之前,请确保 config/database.php 配置数据库连接。...laravel 的 Model 使用先进的 Eloquent ORM 但也有优缺点 优点数据库的操作变的简单安全 缺点也明显数据库的操作变的缓慢笨重 Eloquent ORM 作为 laravel 亮点...最后度娘告诉我命令行也是支持目录的,命令改一改就好了。未来方便找up统一就放app目录下的Models目录里 php artisan make:model Models/Test ?...」的数据库表 两种方式解决 第一种Eloquent自定义$table,缺点:如果重构的项目,表名每个Eloquent都要重新定义可就有的哭了 ``` protected $table =...和使用了 DB 取出来的数据一样的都是一个 Collection 集合,不一样的 DB 取出来的数组,Model 取出来的一个类,需要一层一层的剥开点到 attributes 我们才能看到数据

4.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

Laravel系列4.2】查询构造器

大家可以看到,代码还使用了一个 toArray() 结尾,这样返回的就是一个数组。如果在没有做其它设置的情况下,这个数组里的每一项会是一个 stdClass 对象。... Laravel ,默认情况下这个值设置的就是 PDO::FETCH_OBJ 。关于如何修改成 PDO::FETCH_ASSOC ,我们会在后面的文章中学习。...我们又发现了一个设计模式 Laravel 框架的应用,意外不意外,惊喜不惊喜! 连表查询 普通的连表查询的使用还是非常简单的,也就不多说了,下面的代码也有演示。...不过需要注意的,insert() 返回的布尔值,表示成功失败,所以批量插入的时候想要得到所有的插入 ID 就需要用别的方法了。...依然收获满满的一天呀。接下来,我们更进一层,下篇文章将看看如何通过 ORM 映射的 Model 来实现数据库操作的,并且看看它们如何运行的。

16.8K10

谈谈第一次如何Laravel 贡献源码

事情的起源是因为调试一段模型事件时出现的,当时随便往数据库插入了一段字符串 ID,而不是标准的 uuid。然后发现的模型事件查找不到当前 ID 的模型。...当然,我们不可能总是能遇到问题,也有可能遇到了问题自己的错误,这时候可以去Laravel的问题库看一下自己有什么能解决的问题 进展 先排除了自己本身代码的错误,然后一步一步调试 控制器...但我模型已经设置了主键类型为字符串,这不应该是想要的结果。...溢出 然后向框架提了一个issues Laravel 的组织成员tillkruss 告诉我可以提交一个 PR 然后自己马上行动起来,说实话解决这个问题很简单,因为只要获取主键类型,然后进行强转即可...马上提交了代码,之后被驳回,原来忘记了写测试代码 查看了一下其他数据库的测试代码,找了一个比较符合的写了一个数据库的测试。

10010

Laravel 5.2 文档 数据库 —— 起步介绍

目前,Laravel 支持四种类型的数据库系统: MySQL Postgres SQLite SQL Server 配置 Laravel 让连接数据库和运行查询都变得非常简单。...应用的数据库配置位于config/database.php。该文件你可以定义所有的数据库连接,并指定哪个连接默认连接。该文件中提供了所有支持数据库系统的配置示例。...读/写连接 有时候你希望使用一个数据库连接做查询,另一个数据库连接做插入、更新和删除,Laravel 使得这件事情轻而易举,不管你用的原生 SQL,还是查询构建器,还是 Eloquent ORM,合适的连接总是会被使用...如果我们想要覆盖主数组的配置,只需要将相应配置项放到read和write数组即可。本例,192.168.1.1将被用作“读”连接,而192.168.1.2将被用作“写”连接。...两个数据库连接的凭证(用户名/密码)、前缀、字符集以及其它配置将会共享mysql数组的设置。 2、运行原生 SQL 查询 配置好数据库连接后,就可以使用DB门面来运行查询。

3.2K71

3分钟短文:Laravel模型创建数据条目的2个语法糖

[img] 本期我们开始讲模型如何插入新条目,或者更新既有条目。...代码时间 我们构建一个hello world页面的时候,已经介绍了如何使用laravel的命令行脚手架创建新的模型文件,以及通过迁移功能创建数据库表。这样就把数据操作衔接起来了。...我们还有id字段,created_at字段,updated_at字段,并没有显式赋值。但是你打开数据库表查看结果的时候,发现那些值也成功的写入了。...这样laravel处理模型数据的时候,会默认更新此二字段。 然而,对于写入数据库的那些数据,并不是所有字段都会允许写入的。模型内我们可以手动指定哪些字段可以写,哪些字段不可以写。...新建 or 更新 接着介绍laravel模型的几个语法糖。一个常规的场景,比如在写入数据时,先判断数据库表内是否有该条记录,如果没有就创建,如何有则返回。

1.9K00

基于Laravel 5.2 regex验证的正确写法

Laravel 5.2的验证规则 官方文档里面虽然已经介绍的很详细了, 但是regex的具体写法 文档里面没有示例 也没有直白的告诉我如何去写, 本人原来的写法和网上看到的一样,网上的写法多数如下,...估计很多使用laravel验证规则的程序员也没有深究过,以为这种写法对的, ?...而laravel文档里面又明确的告诉我们 使用regex模式时,规则必须放在数组, 最近在查找laravel资料时发现一个外国小哥的正确写法,应该是下面这个样子, ?...这才是laravel regex 正确的写法,所以以前没有注意到的童鞋,修正一下吧~ 以上这篇基于Laravel 5.2 regex验证的正确写法就是小编分享给大家的全部内容了,希望能给大家一个参考。

1.2K41

使用Laravel的查询构造器实现增删改查功能

引言 上一篇介绍了如何在windows环境下跑一个 laravel 项目,这一篇写如何使用 laravel 的 查询构造器 实现增删改查。..., 命名为 shop , 然后新建两张表 分别: goods - 商品表 user - 用户表 数据表新建完成后, 往里面随意插入了几条数据, 下图: ?...准备步骤已经完成, 我们打开上篇文章介绍的 testLaravel 项目 查看Laravel文档能够知道 数据库配置 config/database.php 里, 因为我们mysql数据库, 所以找到对应的...原来 CSRF 造成的, 无论前端同学还是后端同学, 应该都对这个词不陌生, 跨站请求伪造 laravel 为了解决 CSRF 这个隐患, 默认有保护机制, 我们需要配置 CSRF 白名单 , 根据文档...查询构造器提供 insert 方法用于插入记录到数据库

4.7K30

30分钟用Laravel实现一个博客

本教程的目的完全为向各位 phper 以及对 laravel 有兴趣的小伙伴推荐这款相信未来主流的php框架。...---- 使用模型工厂 Factory 来插入虚构的数据 日常的开发,我们需要很多模拟的数据进行测试,模型工厂的作用就是帮我们快速的,随机的生成这些数据。...总结 => 路由定义浏览器访问某控制器某方法的地址,控制器完成一系列操作:如果需要操作数据库,需要调用模型,每一个模型对应一张表。...一旦表单提交的数据不符合 Request@rules Laravel会自动帮我们生成一个叫 $errors 的数组,它存放着所有的错误信息, 我们视图上通过判断它是否有 content 字段来判断是否表单提交的评论有问题...现在请告诉我,它是否配得上 “优雅” 的两字?:) 希望大家可以喜欢、学习和推广Laravel。如果您愿意付出比学习thinkphp5多0.01分的努力,想这个框架是非常简单的。

7.3K00

laravel 学习之路 数据库操作 数据插入与数据填充

,Db 类有个 insert 方法,它可以直接传插入内容的 sql 语句,现在访问一 下 study.laraveltest.com/db/insert 如果没有报错数据就插入成功了。...但是并不提倡这种拼接字符串的方式来添加数据,维护起来麻烦不说还不安全,所以我换种方式,DB 还有个 table 方法可以传表名再调用 insert 方法可以传要插入数组,于是改造那么一丢丢下面就是改造后的样子...sql 文件,但是 sql 文件中一般不只是表结构一般还有一些初始化的数据昨天学习了表结构今天来玩玩数据,刚刚学习了插入数据的方式,但那是控制器里的这种创建路由创建控制器写填充的方式不太优雅,laravel...优雅的框架这么做跟 laravel 的优雅不符,所有 laravel 必定准备了其他方法,下面学下的填充就是向数据库批量添加数据的,简单概述下就是 数据库迁移+数据填充 = SQL 我们先来看看官网的介绍...这个命令可以用来重建数据库 php artisan migrate:refresh --seed 另外在生产环境强制使用一些填充操作可能会导致原有数据的更新或丢失。

2.5K20

Laravel Eloquent 模型关联关系(下)

今天我们将在定义好模型关联的基础上进行关联查询、插入和更新操作,看看如何借助模型关联提高代码的可读性并提高编码效率。...从性能上来说,渴求式加载更优,因为它会提前从数据库一次性查询所有关联数据,而懒惰式加载每次查询动态属性的时候才会去执行查询,会多次连接数据库,性能上差一些(数据库操作主要开销在数据库连接上,所以开发过程如果想优化性能...注:实际开发为了提高查询性能,我们往往 posts 表冗余提供一个 comments_count 字段,每新增一条评论,该字段值加 1,查询的时候直接取该字段即可,从而提高查询的性能。...学院%') ->orderBy('created_at', 'desc'); }]); 关联插入与更新 一对多关联记录插入 新增关联模型的时候,可以父模型上调用相应方法直接插入记录到数据库...,与 save/saveMany 方法不同的,这两个方法接收的数组参数: // 插入一条记录 $post->comments()->create([ 'content' => $faker-

19.5K30

Laravel事件监听器用法实例分析

EventServiceProvider的linsten数组里面加上事件和监听器,键名事件,键值里面的数组一个或者多个监听器,意思当某一个事件发生的时候,传送给数组里面的那些个监听器,执行一些列操作...\BCCKidV1.0\app\Listeners\SendPhoneCodeListener.php 第三步:打开App\Events\SendPhoneCodeEvent, 加上一个属性,这个属性一个数组...public $data; public function __construct($data) { $this- data = $data; } 第四步:设置监听器里面需要执行的操作,这里就直接插入一条记录就行了...更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及...《php常见数据库操作技巧汇总》 希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

55221

两个非常棒的 Laravel 权限管理包推荐

角色和权限许多 Web 应用程序的重要组成部分。 有很多为这个部分而写的包,随着 Laravel 历史的发展官方也提供了相关的支持。那么今天这块市场的情况如何?有什么包最好用的么?...这里有两个推荐。 为什么需要包? 追本遡源 —— Laravel 官方权限功能支持 5.1.11 版引入之后就几乎没变过。...安装和使用 两个包的安装类似: 添加到 composer 安装; config/app.php 添加一个提供器和 facade (Bouncer); 发布和运行迁移; 在用户模型引入指定的 trait...然后,permissions 附加到 entity 的一组功能; Entity (在所有表分配权限的对象。它可能角色或用户。...Spatie 的优点: 文档更好 ( Bouncer’s 的一些方法没有 README 中被提到) 更容易理解的数据库结构 syncRoles() 方法可以代替删除插入 一些 blade 指令 ——

4.1K30

Sight——杀手级提升Laravel开发速度的组件现在开源了!

SightServer Side实现了一个Presenter层。从而让你把从服务器查出的数据轻松转换为可展示的数据。...自从有了Sight,Laravel成了唯一支持Server Side的MVP模式的框架。 为什么要用Sight呢? 一、加快开发速度。 二、国内的Phper都了解,大厂禁止SQL联表三个表以上的。...遇到初学者,会在FOR循环中查询数据库。如果你禁止了,则还有可能,他们把相关ID PLUCK出来。查出结果,然后,再FOR循环中嵌套FOR循环去查相关的关联数据。...我们看出:created_at所用的MappingTypeEnum::METHOD_NAME,这个方法在哪里呢,PresenterTrait。所以,你也可以定义自己的Trait。...created_by则是直接读取关联数组的user_name,因为用的MappingTypeEnum::JOIN_FIELD。

77700

laravel5.6框架操作数据curd写法(查询构建器)实例分析

本文实例讲述了laravel5.6框架操作数据curd写法(查询构建器)。分享给大家供大家参考,具体如下: laravel5.6 数据库操作-查询构建器 <?...%') - get(); //传递条件数组到where写法,建议多where查询使用这个方法 $data = DB::table('users') - where([ ['id', ' =', 1],...方法验证列值是否在给定值之间 $data = DB::table('users') - whereBetween('id', [1, 3])- get(); //whereIn 方法验证给定列的值是否在给定数组...操作数据ORM 更多关于Laravel相关内容感兴趣的读者可查看本站专题:《Laravel框架入门与进阶教程》、《php优秀开发框架总结》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程...》及《php常见数据库操作技巧汇总》 希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

2.2K30

Laravel5.1 框架模型创建与使用方法实例分析

1 创建模型 创建模型可以使用Artisan控制台的: php artisan make:model Article 一般比较喜欢连带着migration一起生成: php artisan make...= false; } 2.4 白名单和黑名单 当我们用到批量创建和批量修改时 必须声明黑名单或白名单,白名单的属性可以填充的属性,黑名单的属性不允许被填充的属性: class Article...没有添加comment_count 但是create方法数组有comment_count的键值。。。...结果呢 comment_count并没有被填充,原因:它不在白名单 或者 它在黑名单。 4 更新 更新跟插入很像,也有两种方法 普通的 和 批量的。...《php常见数据库操作技巧汇总》 希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

1.9K71

Laravel基于XunSearch的中文搜索解决方案

博客之前的文章也介绍过Sphinx分词搜索:CentOS7下安装Sphinx 中文分词【PHP+MySQL】 但确实,对中文支持很不好,不能用不好来形容,应该是很不好。...本篇文章就来说一下,如何Laravel中使用XunSearch。...Laravel模型获取所有数据,并且toArray转换为数组(也必须转换为数组),然后将该数组传进addIndex()方法里面就行。...详细说一下,数组里面是的字段和在config/xunsearch.php 配置的字段一致的。 ? 如上,你的数组里面必须有这配置文件里面写的字段名。...然后上面代码的setDatabase('referrers')可以不写,就是默认的;写了的话,那么配置文件里面就必须有对应的配置。如上图的referrers。 那么,如何看索引成功没有?

2.8K00
领券