Laravel 动态关联加载
Laravel 的 loadMissing 方法提供了一种灵活的方式,对现有模型或集合进行预加载。该方式避免了 N+1 的查询问题,同时允许你只在需要时加载关联。当使用可选的内容或仪表板构建 API 时,此功能尤其有价值,因为不同的部分需要不同的关联数据。$post->loadMissing(['comments', 'author']); ...
[Laravel 扩展包]Laravel Rewind - Eloquent 的版本控制包
Laravel Rewind 是 Jared Cannon 创建的为 Eloquent 模型提供的一个强大而高效的版本控制包。此包存储模型数据的部分差异和完整快照的组合。Rewind 将自动确定当前版本、可用快照和目标之间的最短路径:
Laravel 使用 whereRelation 进行 Eloquent 关联查询
Laravel 的 whereRelation 方法简化了基于关联属性过滤模型的处理。这个优雅的方式代替复杂的子查询,加入了更具可读性以及更可维护的语法。在电子商务平台、内容管理系统或任何模型相互连接且基于相关数据进行过滤至关重要的应用中构建复杂过滤器时,此功能特别有价值。Post::whereRelation('comments', 'is_approve...
使用 Spatie Event Sourcing 创建事件溯源域
事件溯源(Event Sourcing)是一种跟踪应用状态变化的强大模式,为 Laravel 中管理域名驱动设计提供了一种健壮的方法。然而,设置事件溯源域名可能既费时又重复,尤其是在遵循最佳实践时。为了简化这个过程,Alberto Arena 创建了一个 Laravel 包,它使用 Spatie 的事件溯源库自动创建事件溯源域。只需一个 artisan 命...
PHP 版本统计:2025-01
本文是关于整个社区 PHP 版本使用情况的统计。这些数据或许并不能百分百准确地将整个 PHP 社区的生态现状,但可以准确地表示 packagist (PHP 包)生态的情况。使用统计让我们先看看今天使用的 PHP 版本的百分比。我省略了所有使用率不超过 1% 的版本...
Laravel 12 升级指南
从 11.x 升级到 12.0 预计升级时间:5 分钟 更新依赖影响可能性:高 应用的 composer.json 文件中更新如下依赖:laravel/framework 更新到 ^12.0 Carbon 3 影响可能性:ddi4Carbon 2.x 的支持已经移除。所有 Laravel 12 应用现在要求使用 Carbon 3.x。更新 Laravel Insta...
[Laravel 扩展包]Laravel 集成 Grok AI
Grok AI 包将 Grok AI 无缝集成到 Larave 应用中。利用强大的 AI 模型进行聊天、自动化和 NLP,同时保持 Laravel 的表达简单性。use GrokPHP\Laravel\Facades\GrokAI; use GrokPHP\Client\Config\ChatOptions; use GrokPHP\Client\Enu...
使用 Typesense 改进 Laravel 应用搜索的五个实用技巧
Typesense 正在搜索领域掀起波澜。自从 Typesense 被列为 Laravel Scout 的官方支持驱动程序以来,它很快成为希望将全文搜索集成到 Laravel Eloquent 模型中的开发人员的首选。Typesense 是什么?它是一个快速、开源和自托管的搜索引擎,旨在为 Algolia 和 Meilisearch 等流行解决方案提供强大的...
使用 Laravel 的设备退出功能管理多设备会话
Laravel 通过 Auth::logoutOtherDevices() 提供了一个强大的安全功能,使用户能够在除当前设备之外的所有设备上终止会话。此功能对于在处理敏感数据的应用中维护帐户安全特别有价值。你可以实现此功能以采取主动安全措施,例如应对可疑活动:public function secureSessions(Request $request) ...