【发布时间】:2021-06-25 17:10:39
【问题描述】:
在 laravel 中,我使用 spatie/data-transfer-object 将我的列之一转换为
protected $casts = [
'details' => ProductDetails::class,
];
在我的 ProductDetails DTO 中,我还想转换两个日期字段
class ProductDetails extends CastableDataTransferObject
{
use HasDates;
public int $number
#[CastWith(ProductDateCaster::class)]
public int $start_date; //est DD/MM/YY
#[CastWith(ProductDateCaster::class)]
public int $end_date;
}
这是我的施法者
class ProductDateCaster implements Caster{
public function cast(mixed $value): string
{
$productDetails = new ProductDetails();
return $productDetails->parseDate($value)->format('d/m/Y');
}
}
我的做法不对,施法者正在创建一个 DTO 对象,并为除施法者之外的字段提供 null。任何人都可以建议在 DTO 的特定领域使用脚轮的正确方法
【问题讨论】:
标签: php laravel casting data-transfer-objects