В настоящее время я работаю над небольшим проектом, чтобы научиться проверять правильность Laravel и столкнулся с проблемойКонечная точка API - api/test/schoolbook?start=
, а моя проверка - 'start' => ['date_format:Y-m-d H:i:s']
Хотя это работает как брелок и сортирует учебники по начальному году, я думаю, что моя проверка имеет некоторую ошибку.Это проверяет, если начало равно определенному формату даты, все хорошо.но если я сейчас проанализирую только ?start=
без чего-либо, оно все равно проходит, но не выдает сообщение об ошибке (просто возвращает все без сортировки)
Есть ли способ, которым я могу проверить это лучше ипредотвратить параметр строки запроса, чтобы быть пустым?
Если start
не передан, он должен вернуть все записи, поэтому я не могу сделать это действительно необходимым.Таким образом, сценарии таковы:
?start=date
передается в правильном формате и возвращает все учебники к прошедшей дате, ?start=date
не передается и возвращает все записи в базе данных ?start=
также должен возвращать'должно быть в проверке формата даты'
Спасибо!
Контроллер:
public function findSchoolbook(
SchoolBookRequest $request,
) : JsonResponse {
$schoolbook = $this->schoolkbool->sort($paramBag);
$response = $this->transformer()->paginator($schoolbook);
return $this->response($response);
}
Используемый мной метод ParamBg
private function getParamBag(SchoolBookRequest $request) : ParamBag
{
return ParamBag::create()
->setPage($request->get('page'))
->setPerPage($request->get('per_page'))
->setStartDate($request->get('start_at'))
}
Запрос
class SchoolBookRequest extends Request
{
public function rules() : array
{
return [
'start_at' => ['date_format:Y-m-d H:i:s']
];
}
}