Laravel 5.7 新特性之优化动态调用 Eloquent 模型导致的错误消息

感谢 Bouncer 的开发者 Joseph Silber,在 Laravel 5.7 中,我们可以比以往更轻松地跟踪动态调用 Eloquent 模型导致的错误消息。 你将更清楚地了解具体由于哪个模型缺少方法导致出错,而不是底层对象上让人感到困惑的错误提示: 如果你对该特性的底层实现原理感兴趣,可以查看对应的 pull request 记录。这一功能对那些不了解 Eloquent 模型...

Laracasts 教程总结:Laravel 5 菜鸟入门(上)

1. 使用 Composer 快速创建项目 本节介绍如何使用 Composer 来创建 Laravel 项目。 Composer 是 PHP 的一个依赖管理工具。它以项目为单位进行管理,允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。Mac 下的安装(其他平台安装): $ curl -sS https://getcomposer.org/installer | php...

[ Laravel 5.6 文档 ] 官方扩展包 —— 全文搜索解决方案:Laravel Scout

简介 Laravel Scout 为 Eloquent 模型全文搜索实现提供了简单的、基于驱动的解决方案。通过使用模型观察者,Scout 会自动同步更新模型记录的索引。 目前,Scout 通过 Algolia 驱动提供搜索功能,不过,编写自定义驱动很简单,你可以很轻松地通过自己的搜索实现来扩展 Scout。 注:Algolia 是一个托管式的全文搜索引擎,我们可以通过其提供的 ...

[ Laravel 5.6 文档 ] 测试系列 —— 数据库测试

简介 Laravel 提供了多个有用的工具让测试数据库驱动的应用变得更加简单。首先,你可以使用辅助函数 assertDatabaseHas 来断言数据库中的数据是否和给定数据集合匹配。例如,如果你想要通过 email 值为 xueyuanjun@laravelacademy.org 的条件去数据表 users 查询是否存在该记录 ,我们可以这样做: public function t...

[ Laravel 5.6 文档 ] 进阶系列 —— 集合

简介 Illuminate\Support\Collection 类为处理数组数据提供了流式、方便的封装。例如,查看下面的代码,我们使用辅助函数 collect 创建一个新的集合实例,为每一个元素运行 strtoupper 函数,然后移除所有空元素: $collection = collect(['taylor', 'abigail', null])->map(function...

[ Laravel 5.6 文档 ] 安全系列 —— 登录认证

简介 注:想要快速上手?只需要在新安装的 Laravel 应用下运行 php artisan make:auth 和 php artisan migrate,这两个命令会生成用户登录注册所需要的所有东西,然后在浏览器中访问 http://your-app.dev/register 即可。 Laravel 中实现登录认证非常简单。实际上,几乎所有东西 Laravel 都已经为你配置好了...

[ Laravel 5.6 文档 ] Eloquent ORM —— API 资源类

简介 构建 API 时,在 Eloquent 模型和最终返回给应用用户的 JSON 响应之间可能需要一个转化层。Laravel 的资源类允许你以简单优雅的方式将模型和模型集合转化为 JSON 格式数据。 生成资源类 要生成一个资源类,可以使用 Artisan 命令 make:resource,默认情况下,资源类存放在应用的 app/Http/Resources 目录下,资源类都继承...

[ Laravel 5.6 文档 ] Eloquent ORM —— 序列化

简介 当构建 JSON API 时,经常需要转化模型和关联关系为数组或 JSON。Eloquent 提供了便捷方法以便实现这些转换,以及控制哪些属性被包含到序列化中。 序列化模型 & 集合 序列化为数组 要转化模型及其加载的关联关系为数组,可以使用 toArray 方法。这个方法是递归的,所以所有属性及其关联对象属性(包括关联的关联)都会被转化为数组: $user = ...

[ Laravel 5.6 文档 ] Eloquent ORM —— 访问器和修改器

简介 访问器和修改器允许你在获取模型属性或设置其值时格式化 Eloquent 属性。例如,你可能想要使用 Laravel 加密器对存储在数据库中的数据进行加密,并且在 Eloquent 模型中访问时自动进行解密。 除了自定义访问器和修改器,Eloquent 还可以自动转换日期字段为 Carbon 实例甚至将文本转换为JSON。 访问器 & 修改器 定义访问器 要定义...

[ Laravel 5.6 文档 ] Eloquent ORM —— 集合

简介 Eloquent 返回的包含多条记录的结果集都是 Illuminate\Database\Eloquent\Collection 对象的实例,包括通过 get 方法或者通过访问关联关系获取的结果。Eloquent 集合对象继承自 Laravel 的集合基类,因此很自然的继承了很多处理 Eloquent 模型底层数组的方法。 当然,集合也是迭代器,允许你像 PHP 数组一样对...