我在做什么
我通过两种方式从数据库中获取记录。
方法1
保存记录前强制验证
$v = 'Validator::make($request->all(), [
'Category' => 'required|unique:tblcategory|max:25|min:5'
]);
if ($v->fails()) {
return 'Redirect::back()
->withErrors($v)
->withInput();
}
方法2
从数据库获取记录
$Categories = 'App'Models'Skill'Category_Model::all();
问题是什么
在方法2中,我可以通过使用以下代码'Cache::put('Categories', $Categories, 60);
实现缓存来避免数据库调用
在方法1的情况下如何避免数据库调用
您可以检索类别。然后像这样使用:
$cats = implode(',', $Categories);
$v = 'Validator::make($request->all(), [
'Category' => 'required|not_in:'.$cats.'|max:25|min:5'
]);
您有一个验证器规则unique:tblcategory
。unique
规则将检查数据库中是否存在类别(我想是id)。你不可能真的有这样的验证,并期望它不检查数据库。
缓存unique
规则将是一种非常奇怪的方法,因为您确实不希望值重复,如果缓存类别,可能会发生这种情况。