#Validation with spatie-data : how to validate without triggering an Exception ?

2 messages · Page 1 of 1 (latest)

minor token
#

Hi guys ! I'm trying to use spatie-data + spatie-translatable + laravel-unique-translation together, but I struggle to make it. .It works, but I want to be able to validate data without triggering Exception.
Source code : https://pastebin.com/tTqdh5QG

Can someone help me ?

minor token
#

I tried to add a custom isValidated method on LanguageData :

    public static function isValidated(Arrayable|array $payload): Arrayable|array|null
    {
        /** @var Validator $validator */
        $validator = app(DataValidatorResolver::class)->execute(static::class, $payload);

        try {
            $validator->validate();
        } catch (ValidationException $exception) {
            return null;
        }
        return $validator->validated();
    }

It works well, but there is another problem now : I can't insert data using DB::table('xx')->insert so I tried to modify my TranslatableTransformer but then validation isn't working anymore :

public function transform(DataProperty $property, mixed $value): mixed
    {
        if ($value instanceof DataCollection) {
            $plucked = Arr::pluck($value->toArray(), 'translation', 'locale');
            return json_encode($plucked, JSON_UNESCAPED_UNICODE);
        }
        return $value;
    }