Input/Output Mapping
Basic Usage
use Astral\Serialize\Attributes\InputName;
use Astral\Serialize\Attributes\OutputName;
use Astral\Serialize\Serialize;
class User extends Serialize {
// Use a different property name for input
#[InputName('user_name')]
public string $name;
// Use a different property name for output
#[OutputName('user_id')]
public int $id;
// Support different names for both input and output
#[InputName('register_time')]
#[OutputName('registeredAt')]
public DateTime $createdAt;
}
// Input data with different names
$user = User::from([
'user_name' => 'Job', // Mapped to $name
'id' => 123, // Remains unchanged
'register_time' => '2023-01-01 10:00:00' // Mapped to $createdAt
]);
// Output data
$userArray = $user->toArray();
// $userArray toArray:
// [
// 'name' => 'Job',
// 'user_id' => 123,
// 'registeredAt' => '2023-01-01 10:00:00'
// ]Handling Multiple Input/Output Names
Complex Mapping Scenarios
最后更新于