lastdragon-ru / lara-asp-eloquent
Laravel - Eloquent 助手包的强大集合。
6.4.2
2024-09-20 13:09 UTC
Requires
- php: ^8.1|^8.2|^8.3
- illuminate/collections: ^10.34.0|^11.0.0
- illuminate/database: ^10.34.0|^11.0.0
- illuminate/support: ^10.34.0|^11.0.0
- lastdragon-ru/lara-asp-core: 6.4.2
- symfony/polyfill-php83: ^1.28
Requires (Dev)
- ext-pdo_sqlite: *
- illuminate/container: ^10.34.0|^11.0.0
- lastdragon-ru/lara-asp-testing: 6.4.2
- mockery/mockery: ^1.6.2
- orchestra/testbench: ^8.0.0|^9.0.0
- phpunit/phpunit: ^10.1.0|^11.0.0
- dev-main
- 6.x-dev
- 6.4.2
- 6.4.1
- 6.4.0
- 6.3.0
- 6.2.0
- 6.1.0
- 6.0.0
- 5.x-dev
- 5.6.0
- 5.5.0
- 5.4.0
- 5.3.1
- 5.3.0
- 5.2.0
- 5.1.0
- 5.0.0
- 5.0.0-beta.1
- 5.0.0-beta.0
- 4.x-dev
- 4.6.0
- 4.5.2
- 4.5.1
- 4.5.0
- 4.4.0
- 4.3.0
- 4.2.1
- 4.2.0
- 4.1.0
- 4.0.0
- 3.0.0
- 2.x-dev
- 2.1.0
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.x-dev
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.15.0
- 0.14.1
- 0.14.0
- 0.13.0
- 0.12.0
- 0.11.0
- 0.10.0
- 0.9.0
- 0.8.1
- 0.8.0
- 0.7.0
- 0.6.1
- 0.6.0
- 0.5.0
- 0.4.0
- 0.3.0
- 0.2.0
- 0.1.0
- dev-gitattributes
This package is auto-updated.
Last update: 2024-09-26 07:31:08 UTC
README
此包包含用于 Eloquent 的有用扩展和混合。
要求
安装
composer require lastdragon-ru/lara-asp-eloquent
迭代器
迭代器类似于 Builder::chunk()
,但使用生成器代替 \Closure
,这使得代码更易于阅读。
$query = \App\Models\User::query(); $query->chunk(100, function ($users) { foreach ($users as $user) { // ... } }); foreach ($query->getChunkedIterator() as $user) { // ... }
迭代器还支持限制/偏移量,默认情况下,它将尝试从 Builder 中获取它们,但您也可以手动设置它们。
$query = \App\Models\User::query()->offset(10)->limit(20); foreach ($query->getChunkedIterator() as $user) { // ... 20 items from 10 } foreach ($query->getChunkedIterator()->setOffset(0) as $user) { // ...20 items from 0 }
当您使用默认的 ChunkedIterator
时,您不应在迭代过程中修改/删除项目,否则您可能会得到意外的结果(例如,缺少项目)。如果您需要在迭代过程中修改/删除项目,您可以使用专门为此情况创建的 ChunkedChangeSafeIterator
,与标准 chunkById()
不同,它始终是安全的(请参阅 laravel/framework#35400 获取更多详细信息)。但是存在一些限制。
- 无法对行进行排序,它们始终按
列升序
排序; - 在迭代过程中不应更改
列
,否则可能会导致结果中出现重复行; - 在迭代过程中插入的行可能会被跳过,如果它具有小于内部指针的
列
值; - 不支持带有 UNION 的查询;
- Builder 的
offset
不会使用;
要创建一个安全变更实例,您可以使用
$query = \App\Models\User::query(); foreach ($query->getChangeSafeIterator() as $user) { // ... }
混合
\Illuminate\Database\Eloquent\Builder
升级
请遵循 升级指南。
贡献
此包是 Laravel 强大包集合的一部分。请使用 主仓库 来 报告问题、发送 pull request 或 提问。