PHP определяет относительные форматы, и Laravel не видит доступное правило проверки для этого. Например:

/**
 * Get the validation rules that apply to the request.
 *
 * @return array
 */
public function rules()
{
    return [
        'created-at-from' => 'relative_format',
        'created-at-until' => 'nullable|relative_format|gte:created-at-from'
    ];
}

Как мы можем проверить эти форматы?

ОБНОВЛЕНИЕ

Что использую сейчас:

Создайте класс правил.

php artisan make:rule RelativeFormat

Ставьте логику.

/**
 * Determine if the validation rule passes.
 *
 * @param  string  $attribute
 * @param  mixed  $value
 * @return bool
 */
public function passes($attribute, $value)
{
    return (bool) strtotime($value);
}

И подтверждает:

/**
 * Get the validation rules that apply to the request.
 *
 * @return array
 */
public function rules()
{
    return [
        'created-at-from' => [new RelativeFormat],
        'created-at-until' => ['nullable', new RelativeFormat]
    ];
}
2
Alexandre Thebaldi 5 Окт 2018 в 16:37

1 ответ

Лучший ответ

Вы можете просто создать собственное правило проверки:

Validator::extend('relative_format', function($attribute, $value, $parameters)
{
    return (bool) strtotime($value);
});

И добавьте его в свой AppServiceProvider.

3
aitasmaras 5 Окт 2018 в 14:25