这篇文章主要介绍“Laravel9.35有哪些新功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Laravel9.35有哪些新功能”文章能帮助大家解决问题。
备用邮件语法
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()
方法中:
Model::shouldBeStrict();
shouldBeStrict()
方法是启用以下所有功能的快捷方式:
Model::preventLazyLoading();
Model::preventSilentlyDiscardingAttributes();
Model::preventsAccessingMissingAttributes();
使用资源路由加载废弃模型
Andrew Brown 提供了使用以下路由语法加载带有资源路由的废弃模型的能力:
// 所有终结点
Route::resource('users', UserController::class)->withTrashed();
// 仅`显示`
Route::resource('users', UserController::class)->withTrashed(['show']);
v9.35.0
添加
允许为资源路由加载废弃模型 (#44405)
-
添加到
和其他 (#44283)Illuminate/Database/Eloquent/Model::shouldBeStrict()
没有解析控制器的控制器中间件 (#44516)
选择可邮寄的语法 (#44462)
修复
修复自引用多对多关系中的聚合函数(withSum 等)问题(#44286)
修复了使用静态类属性作为模板属性的问题 (#44473)
Traversable 在 Enumerate Values 中应该优先于 JsonSerializable(#44456)
-
修复了
,所以它是一个布尔选项,而不是值 (#44505)make:cast --inbound
修改
测试方法。 使用 json_encode 使错误消息更具可读性(#44397)
-
让
返回回调的返回值 (#44457)Model::without Timestamps()
仅在相关路由上加载废弃模型(#44478)
向 shouldBlockPhpUpload 函数添加额外的 PHP 扩展 (#44512)
为特别嘈杂的对象注册 cutInternals casters (#44514)
使用 get 方法访问应用程序区域设置 (#44521)
仅返回来自频道的非空响应 (09d53ee, 3944a3e)
正确的频道匹配 (#44531)
迁移邮件组件 (#44527)