Using spatie/laravel-data to create data transfer objects. I need to declare a property that takes an array of strings.
The post payload will be as follows:
{
"countries": ["en", "de"]
}
How do I declare this in the spatie/laravel-data object? Tried doing this:
class ExampleData extends Data
{
public function __construct(
public ?string $someProperty,
#[DataCollectionOf(string::class)]
public ?DataCollection $countries)
{
}
}
}
However, this throws an error:
Data collection property countries has an annotation that isn't a data object or is missing an annotation.
How can I declare an array of integers or strings in this data object?
The right way should be to declare it with an array keyword
public ?array $countries
The above line works