Skip to content

Attributes API

Complete API reference for attributes.

#[Required]
public readonly string $name;
#[Email]
public readonly string $email;
#[Min(3), Max(50)]
public readonly string $name;
#[Between(18, 65)]
public readonly int $age;
#[In(['active', 'inactive'])]
public readonly string $status;
#[Unique('users', 'email')]
public readonly string $email;
#[Exists('users', 'id')]
public readonly int $userId;
#[WhenAuth]
public readonly ?string $privateData = null;
#[WhenGuest]
public readonly ?string $publicData = null;
#[WhenCan('edit')]
public readonly ?string $editUrl = null;
#[WhenRole('admin')]
public readonly ?string $adminNotes = null;
#[WhenValue('status', 'published')]
public readonly ?Carbon $publishedAt = null;
#[Cast(DateTimeCast::class)]
public readonly Carbon $createdAt;
#[Cast(IntCast::class)]
public readonly int $age;
#[MapFrom('user.full_name')]
public readonly string $name;
#[MapTo('user.full_name')]
public readonly string $name;
#[Hidden]
public readonly string $password;
#[Visible(['admin', 'owner'])]
public readonly string $secret;
#[Lazy]
public readonly ?array $posts = null;
#[Computed]
public function fullName(): string
{
return "{$this->firstName} {$this->lastName}";
}