下面由laravel教程栏目给大家介绍关于最新发布的laravel 9.35版本都有哪些变化,希望对大家有所帮助!
Laravel 团队发布了9.35版本,它有一个新的令人兴奋的备用邮件语法、一个Eloquent的 “严格模式” 功能等。
备用邮件语法
Taylor Otwell 通过返回 “指定可邮件内容和属性的精简对象”,贡献了一个可邮件语法。
这是他的一个例子 pull request description:
namespace AppMail;use IlluminateBusQueueable;use IlluminateContractsQueueShouldQueue;use IlluminateMailMailable;use IlluminateMailMailablesAddress;use IlluminateMailMailablesAttachment;use IlluminateMailMailablesContent;use IlluminateMailMailablesEnvelope;use IlluminateQueueSerializesModels;class InvoicePaid extends Mailable{ use Queueable, SerializesModels; /** * 创建一个邮件实例 * * @return void */ public function __construct() { // } /** * 获取邮件信封 * * @return IlluminateMailMailablesEnvelope */ public function envelope() { return new Envelope( subject: 'Invoice Paid', cc: [new Address('foo@example.com', 'Example Name')], tags: [], metadata: [], ); } /** * 获取邮件内容定义 * * @return IlluminateMailMailablesContent */ public function content() { return new Content( view: 'html-view-name', text: 'text-view-name', ); } /** * 获取邮件的附件 * * @return IlluminateMailMailablesAttachment[] */ public function attachments() { return [ Attachment::fromPath('/path/to/file'), ]; }}
使用build() 定义邮件的传统方式不会被删除。 我喜欢上面的例子是因为使用 PHP 8 的命名参数更一目了然。
Eloquent “严格”模式
Chris Morrell 和 Taylor Otwell 合作开发了 Eloquent 严格模式,该模式支持以下功能:
没有延迟加载分配不可填充属性时的例外情况访问未检索或不存在的属性的异常
要在开发中使用严格模式,方法是将以下内容添加到已注册服务提供者的 boot() 方法中:
有道小P
有道小P,新一代AI全科学习助手,在学习中遇到任何问题都可以问我。
64 查看详情
Model::shouldBeStrict();
shouldBeStrict() 方法是启用以下所有功能的快捷方式:
Model::preventLazyLoading();Model::preventSilentlyDiscardingAttributes();Model::preventsAccessingMissingAttributes();
使用资源路由加载废弃模型
Andrew Brown 提供了使用以下路由语法加载带有资源路由的废弃模型的能力:
// 所有终结点Route::resource('users', UserController::class)->withTrashed();// 仅`显示`Route::resource('users', UserController::class)->withTrashed(['show']);
发行说明
你可以在GitHub上看到下面完整的新功能和更新列表以及[9.34.0]和9.35.0](github.com/laravel/framework/compa…) 之间的区别。以下发行说明直接来自 changelog:
v9.35.0
添加
允许为资源路由加载废弃模型 (#44405)添加到 Illuminate/Database/Eloquent/Model::shouldBeStrict() 和其他 (#44283)没有解析控制器的控制器中间件 (#44516)选择可邮寄的语法 (#44462)
修复
修复自引用多对多关系中的聚合函数(withSum 等)问题(#44286)修复了使用静态类属性作为模板属性的问题 (#44473)Traversable 在 Enumerate Values 中应该优先于 JsonSerializable(#44456)修复了make:cast --inbound,所以它是一个布尔选项,而不是值 (#44505)
修改
测试方法。 使用 json_encode 使错误消息更具可读性(#44397)让 Model::without Timestamps() 返回回调的返回值 (#44457)仅在相关路由上加载废弃模型(#44478)向 shouldBlockPhpUpload 函数添加额外的 PHP 扩展 (#44512)为特别嘈杂的对象注册 cutInternals casters (#44514)使用 get 方法访问应用程序区域设置 (#44521)仅返回来自频道的非空响应 (09d53ee, 3944a3e)正确的频道匹配 (#44531)迁移邮件组件 (#44527)
原文地址:https://laravel-news.com/laravel-9-35-0
译文地址:https://learnku.com/laravel/t/72658
以上就是Laravel 9.35 发布啦!看看都有哪些新变化?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/340593.html
微信扫一扫
支付宝扫一扫