jhavenz / laravel-batch-update
Eloquent 模型批量更新
0.0.1
2022-10-03 23:05 UTC
Requires
- php: ^8.0
- illuminate/database: ^9.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- jhavenz/jh-laravel-helpers: *
- orchestra/testbench: *
- pestphp/pest: ^1.20
- spatie/ray: ^1.28
This package is auto-updated.
Last update: 2024-09-10 00:08:09 UTC
README
当您不需要进行 'upsert'(Laravel 支持),也不需要 'insert' 时,总会有些缺失的部分。当您只需要更新所有行,每行都有不同的数据集时,这个包将帮助您。
要求
- PHP: >= 8.1
安装
您可以通过 composer 安装此包
composer require jhavenz/laravel-batch-update
使用方法
注意事项
- 我已经在我的项目中稍微使用过这个包,并且到目前为止运行良好,但仍然处于婴儿期,我必须编写测试套件。如果您发现问题或有添加想法,请告知。
- 我知道我在构建查询时绕过了绑定,但由于我通常在映射 100 多行并执行查询时使用此逻辑,因此我已经遇到了数据库的限制,其中存在“太多绑定”以供数据库引擎处理。
想法?.. 这样子更好,不是吗? 除非,当然,您正在将用户输入传递到您的数据库中...在这种情况下,我想象不出您会在用户等待时进行批量更新。
更新多行,每行都有其自己的值..您只想更新:(不是 updateOrCreate、upsert、findOrCreate 等),例如。
use Jhavenz\LaravelBatchUpdate\BatchedUpdate; // (new BatchedUpdate(User::class))->update( values: [ [ 'user_id' => 123, 'name' => 'john doe', 'email' => 'john@example.com', ], [ 'user_id' => 234, 'name' => 'jane doe', 'email' => 'jane@example.com', ], // ... a whole bunch of mapped data (in memory), then 1 query gets executed ], index: <string> /** Give an index here, or leave null and the Model's key will be used */ quoted: <bool> /** have you quoted the value, or should I ?.. */ );
测试
#TODO - composer test
更新日志
请参阅 更新日志 以获取有关最近更改的更多信息。
贡献
请参阅 贡献指南 以获取详细信息。
安全漏洞
请查看 我们的安全策略 了解如何报告安全漏洞。
鸣谢
许可
MIT 许可证 (MIT)。请参阅 许可文件 以获取更多信息。