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