php namespace App; use Illuminate\Database\Eloquent\Model; class Flight extends Model { /**...\Database\Eloquent\Collection对象,该对象提供了多种对结果集操作的方法 public function find($key, $default = null); public...该对象的方法有很多,这里只列出一小部分,更多方法参考API文档 Collection 和使用说明文档。...要启用软删除,可以在模型中引用Illuminate\Database\Eloquent\SoftDeletes这个Trait,并且在dates属性中增加deleted_at字段。 <?...php namespace App; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes
当MySQL宕机强制缓存空数据到redis,允许部分页面为空.而不是无法提供服务 解决思路 设置好合理的MySQL连接超时时间 mysqlnd.net_read_timeout = 3 当数据库连接超时之后..., 抛出异常 新建一个基础模型BaseModel, 其它所有模型继承这个模型, 并重写newEloquentBuilder方法 <?...php namespace App\Models; use Illuminate\Database\Eloquent\Model; class BaseModel extends Model {...php namespace App\Models\Database; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database...\Eloquent\Collection; use Illuminate\Support\Facades\Log; use Illuminate\Support\Str; class MysqlCustomBuilder
\Database\Eloquent\Collection|static[] */ public function all($columns = array('*')); /** *...\Database\Eloquent\Collection|static[] */ public function find($id, $columns = array('*'));.../** * @param $field * @param $value * @param array $columns * @return \Illuminate\Database\Eloquent\Collection...\Database\Eloquent\Collection|static[] */ public function find($id, $columns = array('*')) {...\Database\Eloquent\Collection|static[] */ public function findBy($field, $value, $columns = array
组件,Tailwind 分页视图, 时间测试助手,artisan serve 的改进,事件监听器的改进,以及各种其他错误修复和可用性改进,对 Laravel 7.x 继续进行了改善。...如果该目录不存在,则框架将假定你的模型应放置在 app 目录。 模型工厂类 模型工厂类由泰勒・奥特威尔(Taylor Otwell)贡献。...php namespace Database\Factories; use App\Models\User; use Illuminate\Database\Eloquent\Factories\Factory...例如,你的 User 模型 有个 suspended 属性,现在你想修改它的一个默认的属性值,你可以使用基类工厂类的 state 方法来完成。方法名字可以随意设置,毕竟这是个很典型的 PHP 方法。.../** * 表示这个用户处于禁止状态 * * @return \Illuminate\Database\Eloquent\Factories\Factory */ public function
这次打算改造搜索能力,使用的是meilisearch,这是一个新出来的家伙,还不错! ?...php namespace App\Services; use App\Helper\MeiliSearch; use Illuminate\Database\Eloquent\Collection...; use Illuminate\Database\Eloquent\Model; use Illuminate\Support\Facades\Log; use Laravel\Scout\Builder...) ->pluck('id')->values(); } /** * 分页实现 * * @param Builder $builder...php artisan scout:import "App\Model\Admin\Article" 使用artisan命令就行,自带的哟!
说明:本文主要说明Laravel Eloquent的延迟预加载(Eager Loading),使用延迟预加载来减少MySQL查询次数。同时,会将开发过程中的一些截图和代码黏上去,提高阅读效率。...\Database\Eloquent\Collection|\App\Shop[] $shops * @method static \Illuminate\Database\Query\Builder...\Database\Eloquent\Collection|\App\Shop[] $shop * @method static \Illuminate\Database\Query\Builder|...\Database\Eloquent\Collection|\App\Merchant[] $merchant * @property-read \Illuminate\Database\Eloquent...\Collection|\App\Product[] $products * @method static \Illuminate\Database\Query\Builder|\App\Shop whereId
类似于这样 namespace App\Models; use Illuminate\Database\Eloquent\Model; class User extends Model {...Illuminate\Database\Query\Builder 调用方法去完成整个SQL。...这个文件在你项目目录中的 vendor/laravel/framework/src/Illuminate/Database/Query 下,你可以自行去查看。...$parameters); } 转发,调用的是 Illuminate\Database\Connection ,用户处理 table()方法,随后会通过 table() 方法指向 Illuminate\...,首先每个 Eloquent ORM 都需要继承父类 Illuminate\Database\Eloquent\Model 你大概会这样写 User::find(1) 父类是不存在这个方法的,它会通过
软删除功能实际上就是利用了全局作用域功能 实现一个全局作用域功能只需要定义一个实现Illuminate\Database\Eloquent\Scope接口的类,该接口只有一个方法apply,在该方法中增加查询需要的约束...php namespace App\Scopes; use Illuminate\Database\Eloquent\Scope; use Illuminate\Database\Eloquent\...* * @param \Illuminate\Database\Eloquent\Builder $builder * @param \Illuminate\Database...makeVisible方法 return $user->makeVisible('attribute')->toArray(); 为json追加值 有时需要在json中追加一些数据库中不存在的字段,使用下列方法...Mutators 在Eloquent模型中,Accessor和Mutator可以用来对模型的属性进行处理,比如我们希望存储到表中的密码字段要经过加密才行,我们可以使用Laravel的加密工具自动的对它进行加密
\Database\Eloquent\Collection Object // ( // [items:protected] => Array // ( //.../framework/src/Illuminate/Database/Eloquent/Collection.php 对象,然后这个对象里面有个 items 属性,是一个数组。...laravel/framework/src/Illuminate/Collections/Collection.php 是集合类,里面的方法大部分都调用的是 laravel/framework/src/...在所有模型都要继承的 laravel/framework/src/Illuminate/Database/Eloquent/Model.php 类中,我们很快就能发现一个 query() 静态方法。...而不是我们之前 查询构造器 中的 laravel/framework/src/Illuminate/Database/Query/Builder.php 对象。
代码时间 laravel系统的基类就是 Illuminate\Support\Collection,同时提供了一个快捷助手函数collect 用于实例化一个集合类。...虽然eloquent collection继承了基类Collection的特性,但是对于模型类的特性 有许多独特的方法。比如 modelKeys() 返回所有集合模型的primary key。...use Illuminate\Database\Eloquent\Collection;class OrderCollection extends Collection{ public function...all方法返回的是一个eloquent collection集合。...写在最后 本文展示了eloquent collection对象的相关操作和方法,大家注意区别于常规的集合类。 Happy coding :-)
尤其强调了利用 Resource::collection 方法简化数据提供过程,以及对比 Fractal 和 Laravel 的资源处理方式。...这个文件包含了使用 Laravel 的迁移(Migration)功能创建数据库表的代码。· posts工厂database/factories/PostFactory.phpIlluminate\Database\Eloquent\Model;class Post extends Model{protected $guarded =...());}静态collection方法将采用要转换的记录集合,并确保为每个记录实例化一个新的UsersResource。...简化和逐步进行本文着重于学习如何使用 Resource::collection 而不是手动实例化类,并将关系数据的提供(或不提供)责任委托给控制器。
up前面玩了 DB 查询,但是laravel开发基本不怎么使用db方式查询,应该有更强大的 模型 Model 介绍 Laravel 的 Eloquent ORM 提供了一个漂亮、简洁的 ActiveRecord...laravel 的 Model 使用先进的 Eloquent ORM 但也有优缺点 优点是数据库的操作变的简单安全 缺点也明显数据库的操作变的缓慢笨重 Eloquent ORM 作为 laravel 中亮点...php namespace App\Models; use Illuminate\Database\Eloquent\Model; class BaseModel extends...php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Test extends BaseModel {...但是有点写法可能不太明白这种类名跟一个变量直接当参数传给方法的 function index(Test $testMdl) laravel 中大量使用了这种方法,百度了下才知道这个东西叫做 依赖注入 。
\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class MTest extends...最后整理下上面的调用链条,首先,我们生成定义的 MTest 是继承自 laravel/framework/src/Illuminate/Database/Eloquent/Model.php 这个抽象类的...然后,在这个抽象类中,使用了一个 laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasRelationships.php 特性,...然后就是调用 newBelongsTo() 方法生成一个 laravel/framework/src/Illuminate/Database/Eloquent/Relations/BelongsTo.php...它判断的是这个 key 是否是抽象基类 laravel/framework/src/Illuminate/Database/Eloquent/Model.php ,而不是我们定义的 MTest ,用的是一个
php namespace App\Casts; use Illuminate\Contracts\Database\Eloquent\CastsAttributes; class Json implements...CastsAttributes { /** * 将取出的数据进行转换 * * @param \Illuminate\Database\Eloquent\Model...php namespace App; use App\Casts\Json; use Illuminate\Database\Eloquent\Model; class User extends...基于这些函数, Laravel 7 现在提供了一个更加面向对象的、更加流畅的字符串操作库。你可以使用 Str::of 方法创建一个 Illuminate\Support\Stringable 对象。...在先前版本的 Laravel 中, database 队列的健壮性被认为无法满足生产环境的需求。但是,Laravel 7 针对使用基于 MySQL 8+ 数据库队列的应用进行了改进。
一、Laravel ORM 概要 Illuminate database(Laravel ORM) 组件 在 GitHub 的地址 1.1 Laravel ORM 简介 Illuminate database...此外还提供在 Laravel 框架内使用的数据库抽象层 DB 类。 非但如此,database 组件提供了能在非 Laravel 框架以外的项目使用接口 Capsule 类。...使用方法也很简单: use Illuminate\Database\Capsule\Manager as Capsule; $capsule = new Capsule; $capsule->addConnection...二、 Laravel ORM 核心组件目录结构 前面我们大致了解了 Laravel ORM 系统整体的目录结构,本节我们重点走进 illuminate/database 文件夹,即 Laravel ORM...核心 2.1 文件结构 |---- database |---- Capsule 文件夹提供非 Laravel 框架以外的系统使用 Laravel
引言 前两期为了说明laravel框架提供的数据库操作能力,直接使用DB门面操作, 而没有引入更为强大的eloquent orm功能。...创建一个模型类非常简单,只用继承系统的模型就可以了: use Illuminate\Database\Eloquent\Model; class Contact extends Model {} 因为遵循的是约定大于配置的惯例...如果返回的模型想要手动定制一下,那么在查询结果集中,使用Collection提供的格式化功能就好了。...Eloquent Collection,包含了Model模型的集合。...Illuminate\Database\Eloquent\Model; class Contact extends Model { // } 如果数据库表还没有创建,你想要把迁移文件的骨架代码也生成出来
下载 Eloquent ORM 相关扩展包 Eloquent ORM 作为 Laravel 框架自带的 ORM 实现,还可以在 Laravel 框架之外作为独立的 ORM 组件使用。...在我们这里的博客应用项目中,可以通过 Composer 在根目录下运行如下命令下载对应的 Eloquent ORM 扩展包: composer require illuminate/database 为了能够正常使用...进入 vendor/illuminate/database,可以通过阅读 README.md 文件查看如何使用独立的 Eloquent ORM 组件,接下来,我们将参照这个文档介绍来编写博客项目的模型类实现...模型类全局可用(为了编写 Eloquent 模型类,如果只是使用 Laravel 提供的数据库查询构建器功能,则不需要这些操作)。...ORM 的模型类基类 Model,这样就可以使用 Eloquent 模型类支持的属性和方法。
学习时间 通常,我们使用助手函数 collect 创建一个集合,其实返回的是 Illuminate\Support\Collection 的一个实例。...而集合 Illuminate\Database\Eloquent\Collection 则是通过 eloquent 方法返回数据时创建的,这很有区别。...因为 Illuminate\Database\Eloquent\Collection 是从 Illuminate\Support\Collection 继承过来的,理所当然,拥有基类所没有的许多特性,比如...因为类 Illuminate\Support\Collection 并没有 find 方法,必然导致错误。find 是在模型中才能调用的集合的方法。...由于 Illuminate\Database\Eloquent\Collection 和 Illuminate\Support\Collection 之间的关系,我们可以在函数返回值上显式声明返回类型。
php namespace App; use Illuminate\Database\Eloquent\Model; /** * App\Post * * @property integer...\Database\Eloquent\Collection|\App\Comment[] $comments * @property-read \Illuminate\Database\Eloquent...\Collection|\App\Tag[] $tags * @method static \Illuminate\Database\Query\Builder|\App\Post whereId($...,在控制器里输入方法时会自动补全auto complete字段属性的方法: 2、mpociot/laravel-test-factory-helper 输入指令php artisan test-factory-helper...Laravel官方推荐使用模型工厂自动生成测试数据,推荐这么写的: //先输入指令生成database/seeds/CategoryTableSeeder.php文件: php artisan make
领取专属 10元无门槛券
手把手带您无忧上云