我正在从用户那里接收'make'、'model'、'fromyear'和'todyear'的输入.我想阻止用户输入一个'fromyear'和'toyear'范围,这些范围已经存在于数据库中,用于给定的'make'和'model'.
例如,如果数据库中有一个记录,其中'make'为'Toyota','model'为'Camry','fromyear'为2015,'toyear'为2020,则不允许用户输入以下范围:
- 2016年到2017
- 2016至2018
- 2019年至2022
- 2013年到2016
但是,如果"fromyear"和"toyear"不在数据库中的任何现有范围内,则应允许用户输入它们.
数据库表有名为"make"、"model"、"fromyear"和"toyear"的列.
$has_range = PartsList::where('make', $request->make)
->where('model', $request->model)
->where(function ($query) use ($request) {
$query->whereBetween('fromyear', [$request->fromyear, $request->toyear])
->orWhereBetween('toyear', [$request->fromyear, $request->toyear]);
})
->exists();
if ($has_range) {
$msg = 'year range already exists for this make and model';
}