Laravel 5.7 按日期搜索
Posted
技术标签:
【中文标题】Laravel 5.7 按日期搜索【英文标题】:Laravel 5.7 search by date 【发布时间】:2018-11-14 03:36:10 【问题描述】:问题是:如何按日期和描述搜索?我的问题是什么?我认为它可以工作,但它根本不起作用。
控制器
public function index(Request $request)
$search = $request->get('search');
$date = $request->get('date');
$projects = Project::where('description', 'like', '%' . $search . '%')
->orWhere('created_at', '%Y-%m-%d','LIKE', '%'.$date.'%')
->orderBy("created_at", 'desc')
->paginate(10)
->withPath('?search=' . $search);
return view('projects.index', compact('projects'));
查看
<div class="col-sm-12 form-group">
<div class="input-group">
<input class="form-control" name="date" type="date" >
<input class="form-control" name="search" type="text"/>
<div class="input-group-btn">
<button type="submit" class="btn btn-success">Search</button>
</div>
</div>
</div>
【问题讨论】:
【参考方案1】:您可以使用->whereDate()
代替->where()
$projects = Project::where('description', 'like', '%' . $search . '%')
->whereDate('created_at',$date)
->orderBy("created_at", 'desc')
->paginate(10)
->withPath('?search=' . $search);
如果上述方法不起作用,那么试试这个
$projects = Project::where('description', 'like', '%' . $search . '%')
->orWhere(function ($query) use ($date)
$query->whereDate('created_at',$date);
)
->orderBy("created_at", 'desc')
->paginate(10)
->withPath('?search=' . $search);
检查这个Link 1 这也是Link2
【讨论】:
【参考方案2】:您可以使用 whereDate()
...
->whereDate('created_at', '=', $date)
...
如果你想使用 OR where 然后
->orWhere(function ($query) use ($date)
$query->whereDate('created_at', '=', $date);
);
【讨论】:
以上是关于Laravel 5.7 按日期搜索的主要内容,如果未能解决你的问题,请参考以下文章