protected function validateUser(Request $request)
{
$request->validate([
'username' => 'required|min:2|max:10',
'mobile' => 'regex:/^1[345789][0-9]{9}$/|unique:users,mobile,' . $request->user()->id,
'sex' => 'required',
]);
}
$params = $request->all();
$params_id = $params['id'] ?? '';
$validator = Validator::make($request->all(), [
'customer_name' => 'required|unique:customer,customer_name,'.$params_id,
'parent_id' => 'required',
], [
'customer_name.required' => '客户名称不能为空!',
'customer_name.unique'=>'客户名称已经被占用',
'parent_id.required' => '顶级菜单不能为空',
]);
if ($validator->fails()) {
$rsp['err_msg'] = "数据校验失败";
$rsp['data'] = $validator->errors()->all();
return $this->getResponse('', ResponseCode::OK, $rsp);
}
提供url: https://blog.csdn.net/lo6064200/article/details/104832750
解释说明
'name' => 'required|unique:test,display_name,11,age,extra_field,extraValue'
解释
对于客户端输入的 name 字段
name 不能为空
name 字段值在给定的数据库表中需为唯一值
// unique 校验规则
unique:table,column,except,idColumn
// 举个栗子
unique:test,display_name,11,age,extra_field,extraValue
test => 数据库表display_name => test 数据表结构中的字段名称11,age => except,idColumn // 表示忽略 test 数据表中 age = 11 的数据记录extra_field,extraValue => 额外的where条件 { // 表示上述规则只会为数据库test表中 extra_field = 'extraValue' 的数据记录做唯一规则的验证}
例子:验证同一仓库下库位名不能相同
$rules['location_name.'.$i] = 'required|unique:warehouse_location,location_name,NULL,l_id,w_id'.($w_id ? ",$w_id" : '');
第二个例子:
name 不能为空
name 字段值在给定的数据库表中需为唯一值
// unique 校验规则
unique:table,column,except,idColumn
// 举个栗子
unique:test,display_name,11,age,extra_field,extraValue
test => 数据库表
display_name => test 数据表结构中的字段名称
11,age => except,idColumn // 表示忽略 test 数据表中 age = 11 的数据记录
extra_field,extraValue => 额外的where条件 {
// 表示上述规则只会为数据库test表中 extra_field = 'extraValue' 的数据记录做唯一规则的验证
laravel判断字段是否存在
Schema::hasColumn('表名','字段名字');
使用方法:
if(Schema::hasColumn('table_name','field_name')){
return '存在';
}else{
return 'table不存在';