Laravel 搜索和过滤
Laravel Search and Filter
这 url 在我使用日期(两者之间)过滤数据之后
http://127.0.0.1:8000/viewMonth/filter?_token=9jmqgiLCKNTMKtwObhlVQXCR6Vj1zcrDwsdXDDbm&dateFrom=2022-01-17&dateTo=2022-01-17
现在我正在创建一个名为 SearchData 的新函数,如果我想显示过滤日期的 SearchData,我应该怎么做
http://127.0.0.1:8000/viewMonth/filter?_token=9jmqgiLCKNTMKtwObhlVQXCR6Vj1zcrDwsdXDDbm&dateFrom=2022-01-17&dateTo=2022-01-17/{SearchData}
这是我的路线
Route::get('/viewMonth/filter/search', 'App\Http\Controllers\InvoiceController@SearchReportMonth')->name('SearchReportMonth');
Route::get('/viewMonth/filter', 'App\Http\Controllers\InvoiceController@filterDateMonth')->name('filterDateMonth');
我建议只 return 使用新的过滤数据编辑页面(除非你需要它更复杂,比如来自 JS 的 HTTP 请求,我假设你知道如何处理的内容)
一个这样的例子:
Only an example of how its done, implementations vary depending on needs
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$query = User::query();
if (request('search')) {
$query
->where('name', 'like', '%' . request('search') . '%')
->orWhere('email', 'like', '%' . request('search') . '%')
->orWhere('id', 'like', '%' . request('search') . '%');
}
if ($request->has(['field', 'sortOrder']) && $request->field != null) {
$query->orderBy(request('field'), request('sortOrder'));
}
// Ignore my InertiaJS implementation, will work the same with base Blade Files.
return Inertia::render('Users/Index', [
'users' => fn() => $query->paginate(10)->withQueryString(),
]);
}
基本上我使用 request()
来获取查询参数,然后从那里构建我的数据库查询和 return 它找到的数据。希望这对您有所帮助,请务必询问您是否需要更多了解或有疑问!
这 url 在我使用日期(两者之间)过滤数据之后 http://127.0.0.1:8000/viewMonth/filter?_token=9jmqgiLCKNTMKtwObhlVQXCR6Vj1zcrDwsdXDDbm&dateFrom=2022-01-17&dateTo=2022-01-17
现在我正在创建一个名为 SearchData 的新函数,如果我想显示过滤日期的 SearchData,我应该怎么做 http://127.0.0.1:8000/viewMonth/filter?_token=9jmqgiLCKNTMKtwObhlVQXCR6Vj1zcrDwsdXDDbm&dateFrom=2022-01-17&dateTo=2022-01-17/{SearchData}
这是我的路线
Route::get('/viewMonth/filter/search', 'App\Http\Controllers\InvoiceController@SearchReportMonth')->name('SearchReportMonth');
Route::get('/viewMonth/filter', 'App\Http\Controllers\InvoiceController@filterDateMonth')->name('filterDateMonth');
我建议只 return 使用新的过滤数据编辑页面(除非你需要它更复杂,比如来自 JS 的 HTTP 请求,我假设你知道如何处理的内容)
一个这样的例子:
Only an example of how its done, implementations vary depending on needs
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$query = User::query();
if (request('search')) {
$query
->where('name', 'like', '%' . request('search') . '%')
->orWhere('email', 'like', '%' . request('search') . '%')
->orWhere('id', 'like', '%' . request('search') . '%');
}
if ($request->has(['field', 'sortOrder']) && $request->field != null) {
$query->orderBy(request('field'), request('sortOrder'));
}
// Ignore my InertiaJS implementation, will work the same with base Blade Files.
return Inertia::render('Users/Index', [
'users' => fn() => $query->paginate(10)->withQueryString(),
]);
}
基本上我使用 request()
来获取查询参数,然后从那里构建我的数据库查询和 return 它找到的数据。希望这对您有所帮助,请务必询问您是否需要更多了解或有疑问!