Laravel 中高效的用户时区处理
当今世界,web 应用经常用来满足来自不同时区的用户的需求。无论是事件调度、显示准确的时间戳还是管理用户交互,正确处理时区对于提供无缝的用户体验至关重要。然而,管理时区可能是一项复杂的任务,尤其是在处理不同地区、夏令时变化和不同用户偏好时。在构建应用时,几乎可以肯定地你会存储 DateTime 和其他与时间戳相关的数据。默认情况下,Laravel 在每个迁移...
[Laravel 扩展包]Laravel Firewall:防止 Laravel 应用遭受各种攻击
随着应用越来越受欢迎,它会成为各种攻击的目标。即使不那么流行,也有一些机器人会不断地在你的应用中寻找漏洞。因此,保护你的应用免受此类攻击始终是个好主意。如果你正在使用 Laravel,有一个名为 Laravel Firewall 的软件包可以帮助你做到这一点。这是 Laravel 的 WAF(Web 应用程序防火墙)。从本质上讲,它是一个包,可以帮助你保护 ...
Laravel 中验证特定时区
Laravel 提供了一个开箱即用的时区(timezone)验证规则,你用以用来验证给定的值是不是一个有效的时区。$request->validate([ 'timezone' => 'timezone', ]);不过,如果你想验证的是,给定的值是特定时区集合中的一个有效时区呢?比如,你想验证给定的值是美国可用的时区集合中的一个有效时区。...
Laravel 使用 Artisan 命令生成视图
Laravel 有多个 Artisan 命令,让你可以生成模板代码。比如,你可以通过 Artisan 命令生成控制器、模型,迁移文件。而从 Laravel 10.x 的发布开始,你可以使用 make:view Artisan 命令来生成视图文件了。我们来看看如何生成。要生成视图文件,你可以使用如下命令。php artisan make:view <vi...
[Laravel 扩展包]在 Laravel 中快速管理临时文件
我最近有一个队列作业,需要将文件临时下载到服务器,进行处理,最后清理临时文件。这在 PHP 中并不困难,你可能已经使用以下方式开始:file_put_contents('/tmp/' . $tmpFile, file_get_contents($video));要使之更能跨平台兼容,获取你可用使用 PHP 内置的 sys_get_temp_dir() 函数获...
Laravel 11 升级指南
更新依赖、应用结构、浮点型类型、修改数据库字段、SQLite 最低版本、更新 Sanctum、Carbon 3、密码重新哈希、按秒限流、移除 Doctrine DBAL、Eloquent 模型的 casts 方法、Spatial 类型、Spatie Once 包、Enumerable Contract、UserProvider Contract、...
Laravel 11 精简配置文件
Laravel 11 中,我最喜欢的功能之一是精简的配置文件。在 Laravel 11 的开发过程中,所有配置文件都从默认的 Laravel 安装中删除。然而,在发布前几周,Taylor 决定在默认的 Laravel 安装中重新包含精简版的配置文件,但保留了删除任何不需要的文件或选项的选项。让我们更深入地了解这是如何避免错误并获得尽可能精简的应用程序的。毕竟...
在 Filament 中使用 Apex Chart 插件创建优美图表
Leandro Ferreira 的 Filament Apex Charts 插件将流行的 Apex Chart 库带到你的 Laravel 应用中。该插件使用与 Apex Chart 库相同的 API,因此可以使用官方文档作为配置参考,在 Filament 中创建图表,就像在 JS 库中一样。该软件包还支持过滤 widget 数据、实时更新(轮询)、延迟...
在 Laravel 中使用 Google 的 Gemini AI
在带有 Gemini PHP 包的 Laravel 程序中开始使用谷歌的 Gemini AI API。这个 Laravel 包是围绕 Gemini PHP 客户端构建的,提供了一个与 API 和 AI 模型交互的 Facade:use Gemini\Laravel\Facades\Gemini; $result = Gemini::geminiPro...
[Laravel 扩展包]RBAC 权限管理包 Laravel Permission
简介spatie/laravel-permission 是一个由 Spatie 出品的基于 RBAC(Role-Based Access Control) 基于角色的访问控制权限管理包。该包用于管理用户权限和角色。安装通过 Composer 进行安装composer require spatie/laravel-permission安装完成后,你可以这样使用...