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) ...
Laravel 中重定向到控制器操作(actions)
在构建 web 应用时,在应用的不同部分之间重定向用户是一项常见要求。虽然 Laravel 提供了几种处理重定向的方法(比如使用 route()->name() 的命名路由),但 action() 方法提供了一种专注于控制器操作的替代方法,为某些场景提供了独特的优势。为什么要考虑 Action 重定向?类型安全:IDE 自动补全和重构支持显式依赖关系:...
[Laravel 扩展库]Laravel Artisan 基准测试
Laravel 核心团队成员 Christoph Rumpel 最近在视频上演示了一个名为 Artisan Benchmark 的新扩展包。这个包允许你对 Artisan 命令进行基准测试,以获取各种指标,如:执行时间内存使用SQL 查询计数返回/影响的行数你可以通过 Composer 安装这个包:composer require christo...