使用起始日期和截止日期过滤记录
Filter record using from date and to date
就我而言,我必须使用起始日期和截止日期来过滤记录,
我已经厌倦了 where between 但只有当我同时输入起始日期和截止日期时它才有效
public function searchCustomers(Request $request, CustomerProfile $user)
{
$fromDate = $request->get('from_date');
$toDate = $request->get('to_date');
$user = $user->newQuery();
if ($request->has('city')) {
$user->where('city', $request->input('city'));
}
if ($request->has('from_date') && $request->has('to_date')) {
$user->whereBetween('date_of_visit', [$fromDate, $toDate]);
}
$results = $user->get();
return response()->json($results);
}
但有时我只想搜索起始日期,有时我只想搜索截止日期,有时我想同时搜索起始日期和截止日期,
如何获得以上输出??
您需要添加更多逻辑。我假设您只想搜索可用的逻辑。
if ($fromDate && $toDate) {
$user->whereBetween('date_of_visit', [$fromDate, $toDate]);
} else if ($fromDate) {
$user->where('date_of_visit', '>=', $fromDate);
} else if ($toDate) {
$user->where('date_of_visit', '<=', $toDate);
}
............
if($fromDate && $toDate) {
$user->whereBetween('date_of_visit', [$fromDate, $toDate]);
} else if($fromDate) {
$user->whereDate('date_of_visit', '>=', $fromDate);
} else if($toDate) {
$user->whereDate('date_of_visit', '<=', $toDate);
}
$results = $user->get();
return response()->json($results);
试试这个
public function searchCustomers(Request $request, CustomerProfile $user)
{
$user = $user->newQuery();
if ($request->has('city')) {
$user->where('city', $request->input('city'));
}
if ($request->has('from_date')) {
$user->where('date_of_visit', '>=', $request->get('from_date'));
}
if ($request->has('to_date')) {
$user->where('date_of_visit', '<=', $request->get('to_date'));
}
$results = $user->get();
return response()->json($results);
}
if (isset($fromDate) && isset($toDate)) {
$user->whereBetween('date_of_visit', array($fromDate, $toDate));
} else if (isset($fromDate)) {
$user->where('date_of_visit', '>=', $fromDate);
} else if (isset($toDate)) {
$user->where('date_of_visit', '<=', $toDate);
}
你应该试试这个:
public function searchCustomers(Request $request, CustomerProfile $user)
{
$fromDate = $request->get('from_date');
$toDate = $request->get('to_date');
$user = $user->newQuery();
if ($request->has('city')) {
$user->where('city', $request->input('city'));
}
if (!empty($fromDate) && !empty($toDate)) {
$user->whereBetween('date_of_visit', [$fromDate, $toDate]);
} else if(!empty($fromDate)){
$user->where('date_of_visit', '>=', $fromDate);
} else {
$user->where('date_of_visit', '<=', $toDate);
}
$results = $user->get();
return response()->json($results);
}
就我而言,我必须使用起始日期和截止日期来过滤记录,
我已经厌倦了 where between 但只有当我同时输入起始日期和截止日期时它才有效
public function searchCustomers(Request $request, CustomerProfile $user)
{
$fromDate = $request->get('from_date');
$toDate = $request->get('to_date');
$user = $user->newQuery();
if ($request->has('city')) {
$user->where('city', $request->input('city'));
}
if ($request->has('from_date') && $request->has('to_date')) {
$user->whereBetween('date_of_visit', [$fromDate, $toDate]);
}
$results = $user->get();
return response()->json($results);
}
但有时我只想搜索起始日期,有时我只想搜索截止日期,有时我想同时搜索起始日期和截止日期,
如何获得以上输出??
您需要添加更多逻辑。我假设您只想搜索可用的逻辑。
if ($fromDate && $toDate) {
$user->whereBetween('date_of_visit', [$fromDate, $toDate]);
} else if ($fromDate) {
$user->where('date_of_visit', '>=', $fromDate);
} else if ($toDate) {
$user->where('date_of_visit', '<=', $toDate);
}
............
if($fromDate && $toDate) {
$user->whereBetween('date_of_visit', [$fromDate, $toDate]);
} else if($fromDate) {
$user->whereDate('date_of_visit', '>=', $fromDate);
} else if($toDate) {
$user->whereDate('date_of_visit', '<=', $toDate);
}
$results = $user->get();
return response()->json($results);
试试这个
public function searchCustomers(Request $request, CustomerProfile $user)
{
$user = $user->newQuery();
if ($request->has('city')) {
$user->where('city', $request->input('city'));
}
if ($request->has('from_date')) {
$user->where('date_of_visit', '>=', $request->get('from_date'));
}
if ($request->has('to_date')) {
$user->where('date_of_visit', '<=', $request->get('to_date'));
}
$results = $user->get();
return response()->json($results);
}
if (isset($fromDate) && isset($toDate)) {
$user->whereBetween('date_of_visit', array($fromDate, $toDate));
} else if (isset($fromDate)) {
$user->where('date_of_visit', '>=', $fromDate);
} else if (isset($toDate)) {
$user->where('date_of_visit', '<=', $toDate);
}
你应该试试这个:
public function searchCustomers(Request $request, CustomerProfile $user)
{
$fromDate = $request->get('from_date');
$toDate = $request->get('to_date');
$user = $user->newQuery();
if ($request->has('city')) {
$user->where('city', $request->input('city'));
}
if (!empty($fromDate) && !empty($toDate)) {
$user->whereBetween('date_of_visit', [$fromDate, $toDate]);
} else if(!empty($fromDate)){
$user->where('date_of_visit', '>=', $fromDate);
} else {
$user->where('date_of_visit', '<=', $toDate);
}
$results = $user->get();
return response()->json($results);
}