2016-09-15 30 views
0

我正在使用laravel 5.0。我想使用laravel验证器,其中'dbo.MS_MENU'中的MENU_NAME列是唯一的。我正在使用SQL Server数据库。我在下面进行一个验证码一样,但我仍然有一个错误如何在Laravel 5.0中使用验证器?

QueryException在Connection.php行624: SQLSTATE [23000]:[微软] [ODBC SQL Server的驱动程序11] [SQL服务器]违反UNIQUE KEY约束'IX_MS_MENU'。不能在对象'dbo.MS_MENU'中插入重复键。重复的键值是(角色)。 (SQL:EXEC dbo.M_INSERT_MENU_PARENT '0', '121', '角色', '菜单科巴', '0', '自卫队')

$validator = Validator::make($request->all(), [ 
     'MENU_NAME' => 'unique:dbo.MS_MENU']); 

    if ($validator->fails()) { 
     return redirect ('Menu')->withErrors($validator)->withInput(); 
    } 
+0

我想从DB身边走过的错误.. –

+0

如果我改变独特:dbo.MS_MENU'到“需要”这是工作。你认为这是因为DB吗? – hendraspt

+0

然后我们需要在这里指定条件,当它将是唯一的。 –

回答

0

请试着用这一个

$validator = Validator::make($request->all(), [ 
    'MENU_NAME' => 'unique:dbo.MS_MENU,MENU_NAME']); 

您需要使用表名,也列名

+0

它仍然是一样的 – hendraspt

0

您好检查下面的代码,

//Validation using ajax  
public function checkvalidation(Request $request) { 

    $data['SUCC_FLAG'] = 0; 
    $formdata = $request->only('uname', 'umail', 'dob', 'cno', 'pwd', 'cpwd'); 
    $rules = ['uname' => 'required|min:2|alpha', 'umail' => 'required|email', 'dob' => 'required|date', 'cno' => 'required|digits:10', 'pwd' => 'required|min:3|max:6', 'cpwd' => 'required|same:pwd']; 
    $validator = Validator::make($formdata, $rules); 
    if ($validator->fails()) { 
     $data['msg'] = $validator->errors(); 
    } else { 
     $data['SUCC_FLAG'] = 1; 
     $data['msg'] = "success"; 
    } 
    return json_encode($data); 
} 

这是我用于我的项目的示例代码,您必须根据您的使用或项目进行更改。

使用验证器您必须包含使用验证器;在头

我希望这对你的作品