Laravel Проверка нескольких параметров строки - PullRequest
0 голосов
/ 12 февраля 2020

В моей таблице есть строковый столбец, например, status, который содержит 2 строковых значения в качестве констант. Я хочу добавить возможность, чтобы пользователи могли обновлять статус только для этих 2 строковых значений. Основная цель вопроса - добавить в мой контроллер подтверждение status, которое пользователь может выбрать только online или offline в качестве параметров

, поэтому в основном столбец состояния может быть этими 2 строковые значения

  protected $validation = [
        'status' => 'string:online, offline
    ];

Я знаю, что вышеупомянутое не работает, но мне нужно нечто подобное для проверки нескольких постоянных значений для строкового столбца.

это константы для статуса, который мне нужен используя

public const ONLINE = 'online';
public const OFFLINE = 'offline';

есть ли способ добавить в проверку для поля видимости, используя эти константы? некоторая помощь была бы полезна.

полный файл класса ниже:

protected $request;

protected $user;


protected $validation = [
    'name' => 'max:10'
];

protected $required = [
    'name'
];

public function __construct(Request $request = null)
{
    $this->request = $request;
}

1 Ответ

1 голос
/ 12 февраля 2020

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

use Illuminate\Validation\Rule;

$validation = [
        'status' => [Rule::in([Class::ONLINE,Class::OFFLINE])]
    ];

Или лучше определить константу STATUSES, перечисляющую все возможные статусы в вашем классе

public const ONLINE = 'online';
public const OFFLINE = 'offline';
public const STATUSES = [self::ONLINE, self::OFFLINE];

и используйте эту константу

use Illuminate\Validation\Rule;

$validation = [
        'status' => [Rule::in(Class::STATUSES)]
    ];
...