Laravel中具有多个输入字段的搜索功能



我有一个表,我想用用户名或数据范围搜索。数据范围搜索正在工作,但我不知道如何添加用户名选择值。请看下面我的代码:

用户表:

lname

我不确定我是否理解正确,但是您可以搜索用户,然后在他身上调用sim方法。

$user = User::where(DB::raw("CONCAT('fname', ' ', 'lname')"), '=', $request->data['username'])->first();
$sims = $user->sim()->get();

你在这里可以对request的搜索词做一些其他的事情。你可以把所有东西都放低。请考虑,一个用户可以使用相同的名称存在两次。在这种情况下,您应该使用->get()而不是->first()。然后得到一个集合,其中可以运行。

您可以先创建一个SIM实例,然后通过与该实例链接添加所有查询。

你的控制器应该是这样的:

public function sale_index(request $request){
$users = User::orderBy( 'fname', 'asc')->get();
$sim = Sim::query();
if($request->filled('username')){
$sim->where('user_id', '=', $request->username);
}
if($request->filled('from') AND $request->filled('to')){
$sim->whereBetween('created_at', [$request->get('from'),$request->get('to')]);
}
$sales = $sim->orderBy( 'id', 'desc')->get();
return view('admin.all_sale', compact('sales','users'));
}

注意:此代码未经过测试。

最新更新