#laravel #validation
#laravel #проверка
Вопрос:
Может кто-нибудь помочь мне получить одно значение из $validator->getData()
? Я хочу использовать время и заголовок в своем запросе, но, похоже, я не могу получить значение времени.
Вот правило:
$this->validate($request, [
'name' => 'required|min:5|max:15',
'title' => 'required|min:5|max:100|availablee',
'time' => 'required|available|duration'
]);
Это код для availablee
, я могу получить значение title через $value
, но я не могу получить значение time из array_get
.
<?php
Validator::extend('availablee', function ($attribute, $value, $parameters, $validator) {
$time1 = array_get($validator->getData(), $parameters[4]);
$time = explode(" - ", $time1);
$start = $this->change_date_format($time[0]);
$end = $this->change_date_format($time[1]);
// Search for any possible clash with available events
$scene1 = DB::table('events')
->where('title', '==', $value)
->where('start_time', '<=', $start)
->where('end_time', '>=', $end)
->count();
if ($scene1 > 0) {
return false;
}
return true;
});
Этот код дает мне…
Исключение ErrorException в CheckRoomAvailability.php строка 83: Неопределенное смещение: 4
Комментарии:
1. ну, ключ
4
не существует в вашей$parameters
переменной,dd($parameters);
выше этого и проверьте его значения.2. я попробовал dd($parameters); и это дает мне [ ] массив. я попытался dd($validator); и это дает мне данные, которые мне нужно использовать. как я могу получить конкретное значение в валидаторе? пожалуйста, помогите
Ответ №1:
сделано с помощью этого кода
$time1 = $validator->getData();
$time = explode(" - ",$time1['time'] );
вместо того , чтобы
$time1 = array_get($validator->getData(), $parameters[4]);
$time = explode(" - ",$time1 );