В настоящее время создаю конечные точки API для расписания повторений, но у меня возникла проблема с проверкой массива, чтобы убедиться, что он существует в предварительно установленном массиве:
Например, значения repeat_day
должны иметь правильные дни
Это запрос API:
{
"repeat_by": "daily",
"repeat_day": [
"Sunday",
"xxx"
],
"repeat_date": [],
"repeat_week": [],
"repeat_month": []
}
Это StoreUpdateScheduleRequest
public function __construct()
{
$this->dayArray = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
//and some other array
}
public function rules()
{
$repeatDayRule = request()->get('repeat_by') == "daily" ? ['required', Rule::in($this->dayArray)] : '';
//and some other validation rules
return [
"repeat_day.*" => $repeatDayRule
"repeat_date.*" => $repeatDateRule
"repeat_week.*" => $repeatWeekRule
"repeat_month.*" => $repeatMonthRule
];
}
Моя проблема в том, что когда я предоставляю null
или пустой массив,проходит проверку, которая должна завершиться неудачей.
{
"repeat_by": "daily"
"repeat_day": null //or even []
}
Примечание:
Я попытался сделать проверку на request_day
вместо request_day.*
, но это не помоглонеправильно проверить день.
Хотел бы использовать встроенную проверку Laravel (может быть, я что-то упустил) и не хочу расширять проверку.
Заранее спасибо!Ура!