Много всего

This commit is contained in:
brusnitsyn
2025-12-12 17:10:05 +09:00
parent 54f36e91fa
commit 98e9f8b52e
25 changed files with 1118 additions and 145 deletions

View File

@@ -0,0 +1,42 @@
<?php
namespace App\Rules;
use Closure;
use Illuminate\Contracts\Validation\ValidationRule;
use Illuminate\Support\Carbon;
class DateTimeOrStringOrNumber implements ValidationRule
{
/**
* Run the validation rule.
*
* @param \Closure(string, ?string=): \Illuminate\Translation\PotentiallyTranslatedString $fail
*/
public function validate(string $attribute, mixed $value, Closure $fail): void
{
// Если null - пропускаем
if (is_null($value)) {
return;
}
// Если число
if (is_numeric($value)) {
return;
}
// Если строка
if (is_string($value)) {
// Проверяем, можно ли преобразовать в дату
try {
Carbon::parse($value);
return;
} catch (\Exception $e) {
// Если не дата, но это строка - все равно ок
return;
}
}
$fail('Ошибка при проверки даты');
}
}