Laravel - Как проверить даты с относительными форматами? - PullRequest
0 голосов
/ 05 октября 2018

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]
    ];
}

1 Ответ

0 голосов
/ 05 октября 2018

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

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

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

...