[英]Creating Laravel DTO from request with optional fields
我正在使用 Spatie Laravel-data 創建數據對象以傳入和傳出 API。我在嘗試從 POST 請求創建 DTO 時遇到了問題 - 某些字段不會傳入INSERT,最明顯的是 ID。
我每次都驗證失敗,出現以下錯誤
{
"message": "The given data was invalid.",
"errors": {
"id": [
"The id field is required."
]
}
}
我的 DTO class 遵循這些說明,看起來像這樣:
class MemberData extends Data
{
public function __construct(
public int|Optional $id,
#[Max(255)]
public string $first_name,
#[Max(255)]
public string $last_name,
)
{}
}
如何在不提供 ID 的情況下通過驗證? 或者我應該為 INSERT 創建一個不同的 DTO 嗎?
問題解決了。 如果我聽過我的 IDE 的抱怨,我就會意識到 Optional 是一個需要包含的 class。
屬性驗證(最大)也是如此
將此添加到數據 object 的頂部解決了這個問題。
use Spatie\LaravelData\Optional;
use Spatie\LaravelData\Attributes\Validation\Max;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.