Laravel Prompts 添加多行文本区域输入,Laravel 11.3 发布
上次更新时间 作者 Paul Redmond
本周,Laravel 团队发布了 v11.3,其中包括 Laravel Prompts 中的多行文本,Session:hasAny() 方法,Context::pull() 方法等等。
多行文本提示
Joe Tannenbaum 为 Laravel Prompts 贡献了一个文本区域函数,该函数接受来自用户的多行文本
textarea()
函数包含一个可选的验证参数,以及一个必需的参数,以确保文本区域被填满
use function Laravel\Prompts\textarea; $story = textarea( label: 'Tell me a story.', placeholder: 'This is a story about...', required: true, hint: 'This will be displayed on your profile.'); // Validation$story = textarea( label: 'Tell me a story.', validate: fn (string $value) => match (true) { strlen($value) < 250 => 'The story must be at least 250 characters.', strlen($value) > 10000 => 'The story must not exceed 10,000 characters.', default => null });
请参阅 textarea()
函数的 文档 以了解使用详细信息,以及 Pull Request #88 在 laravel/prompts 代码库中的实现。
新的 Session hasAny() 方法
Mahmoud Mohamed Ramadan 为会话贡献了一个 hasAny()
方法,这在检查会话中是否存在任何值时是一个不错的改进
// Beforeif (session()->has('first_name') || session()->has('last_name')) { // do something...} // Using the new hasAny() methodif (session()->hasAny(['first_name', 'last_name'])) { // do something...}
Context Pull 方法
@renegeuze 为 Context 服务贡献了一个 pull()
和 pullHidden()
方法,它们提取上下文数据并立即将其从上下文中删除。
$foo = Context::pull('foo');$bar = Context::pullHidden('foo');
此功能的一个示例用例可能是捕获用于数据库日志记录的上下文,并将其提取出来,因为不再需要额外的上下文。
发布说明
您可以在下面看到新功能和更新的完整列表,以及 11.2.0 和 11.3.0 之间的差异。以下发布说明直接来自 变更日志
v11.3.0
- [10.x] 通过 @kasus 在 https://github.com/laravel/framework/pull/50812 中防止 Redis 连接错误报告泛滥
- [11.x] 通过 @MinaWilliam 在 https://github.com/laravel/framework/pull/50903 中优化 SetCacheHeaders 以确保错误响应不被缓存
- [11.x] 通过 @mahmoudmohamedramadan 在 https://github.com/laravel/framework/pull/50897 中添加会话
hasAny
方法 - [11.x] 通过 @JaZo 在 https://github.com/laravel/framework/pull/50896 中添加选项以在 ThrottlesExceptions 中间件中报告被节流的异常
- [11.x] 通过 @Neol3108 在 https://github.com/laravel/framework/pull/50890 中添加 DeleteWhenMissingModels 属性
- [11.x] 通过 @grohiro 在 https://github.com/laravel/framework/pull/50901 中允许自定义 TrimStrings::$except
- [11.x] 通过 @renegeuze 在 https://github.com/laravel/framework/pull/50904 中为 Context 添加 pull 方法
- [11.x] 通过 @hafezdivandari 在 https://github.com/laravel/framework/pull/50907 中从 MariaDbGrammar 中删除冗余代码
- [11.x] 通过 @Jubeki 在 https://github.com/laravel/framework/pull/50922 中明确可空参数声明以修复 PHP 8.4 弃用
- [11.x] 通过 @stancl 在 https://github.com/laravel/framework/pull/50912 中为缓存存储添加 setter
- [10.x] Laravel 10x 针对 hasTable 的可选 withSize,由 @apspan 在 https://github.com/laravel/framework/pull/50888 中添加
- [11.x] 通过 @macocci7 在 https://github.com/laravel/framework/pull/50850 中修复了在 artisan 命令上提示缺少数组参数的问题
- [11.x] 通过 @mateusjatenee 在 https://github.com/laravel/framework/pull/50909 中为 Eloquent 添加严格模式安全的 hasAttribute 方法
- [11.x] 通过 @browner12 在 https://github.com/laravel/framework/pull/50905 中添加获取伪造事件的函数
- [11.x]
retry
函数 - 通过 @sethsandaru 在 https://github.com/laravel/framework/pull/50944 中捕获 "Throwable" 而不是 Exception - chore: 通过 @findseat 在 https://github.com/laravel/framework/pull/50943 中删除重复的词语
- [10.x] 通过 @dbpolito 在 https://github.com/laravel/framework/pull/50935 中为
NotificationFake
添加serializeAndRestore()
- [11.x] 通过 @shinsenter 在 https://github.com/laravel/framework/pull/50955 中在处理 HttpClient 重试逻辑中的 ConnectionException 时防止崩溃
- [11.x] 通过 @naopusyu 在 https://github.com/laravel/framework/pull/50965 中删除未知参数
- [11.x] 通过 @naopusyu 在 https://github.com/laravel/framework/pull/50967 中修复 PHPDoc 中的
[@param](https://github.com/param)
错别字 - [11.x] 通过 @michaelnabil230 在 https://github.com/laravel/framework/pull/50979 中修复 dockblock
- [11.x] 通过 @JurianArie 在 https://github.com/laravel/framework/pull/50981 中允许在数据库锁定中伪造时间
- [11.x] 通过 @Jacobs63 在 https://github.com/laravel/framework/pull/50980 中引入
Http::createPendingRequest()
方法 - [11.x] 通过 @saMahmoudzadeh 在 https://github.com/laravel/framework/pull/50969 中为某些 doc block 添加 @throws
- [11.x] 通过 @joshuaruesweg 在 https://github.com/laravel/framework/pull/50962 中修复对视图文件的现有检查的 PHP_MAXPATHLEN 检查
- [11.x] 通过 @plumthedev 在 https://github.com/laravel/framework/pull/50953 中允许从 BelongsToMany 关系中删除范围
- [11.x] 通过 @mateusjatenee 在 https://github.com/laravel/framework/pull/50908 中如果命名速率限制器和模型属性不存在,则抛出异常