【发布时间】:2022-07-21 19:16:58
【问题描述】:
我的问题是,如果缓存中有数据,我用fetch创建了一个条件,如果没有,我就从数据库中取出,刷新缓存一段时间。正常情况下,如果不使用缓存,我可以搜索页面,但是我不能使用下面的代码按id或昵称搜索。那么使用cache::get时可以添加搜索条件吗?
public function index(Request $request)
{
$submit = $request->get('submit');
$id = $request->get('id');
$nick_name = $request->get('nick_name');
if (Cache::has('users')) {
$users = Cache::get('users');
return view('admin.users.index', compact('users'));
}
$users = User::when(!empty($id), function ($query) use ($id) {
$query->where('id', $id);
})->when(!empty($nick_name), function ($query) use ($nick_name) {
$query->where('nick_name', $nick_name);
})->orderBy('created_at', 'asc')->get();
Cache::put('users', $users, now()->addMinutes(60));
return view('admin.users.index', compact('users'));
}
【问题讨论】: