输入/输出映射
基础使用
use Astral\Serialize\Attributes\InputName;
use Astral\Serialize\Attributes\OutputName;
use Astral\Serialize\Serialize;
class User extends Serialize {
// 输入时使用不同的属性名
#[InputName('user_name')]
public string $name;
// 输出时使用不同的属性名
#[OutputName('user_id')]
public int $id;
// 同时支持输入和输出不同名称
#[InputName('register_time')]
#[OutputName('registeredAt')]
public DateTime $createdAt;
}
// 使用不同名称的输入数据
$user = User::from([
'user_name' => '张三', // 映射到 $name
'id' => 123, // 保持不变
'register_time' => '2023-01-01 10:00:00' // 映射到 $createdAt
]);
// 输出数据
$userArray = $user->toArray();
// $userArray 的内容:
// [
// 'name' => '张三',
// 'user_id' => 123,
// 'registeredAt' => '2023-01-01 10:00:00'
// ]多输入/输出名称处理
复杂映射场景
最后更新于