我使用laravel-jsValidation,https://github.com/proengsoft/laravel-jsvalidation,除了唯一规则外,一切正常! 在这里我有: 规则:
protected $userValidate=[
'lastname' => 'required|max:100|min:2',
'firstname' => 'max:100|min:2',
'username' => 'required|unique:users|min:2',
'email' => 'required|unique:users|email|max:255',
'password' => 'required|confirmed|min:6', ];
获取用户列表功能:
public function getUsers(){
$validator = JsValidator::make($this->userValidate);
return view('admin.usersList')->withValidator($validator);}
商店功能:
public function store(Request $request){
$data = $request->all();
$v = Validator::make($data, $this->userValidate);
if ($v->fails())
{
return redirect()->back()->withErrors($v->errors());
}
$user = User::create([
'lastname' => $data['lastname'],
'firstname' => $data['firstname'],
'username' => $data['username'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'confirmed' => 1,
]);
return redirect('admin/usersList');}
问题是当我输入用户名或电子邮件时,其输入中会显示错误消息:
糟糕,看起来出了问题。
注意:我设置:'disable_remote_validation' => false,
当我将其更改为true
时,只有当我输入用户表中不存在的用户名和电子邮件时,它才能正常工作!
我的代码中的错误是什么?
答案 0 :(得分:2)
我是laravel-jsvalidation包的维护者。此问题已在版本1.3.0
中修复自动验证规则唯一, ActiveURL ,存在和自定义验证。只需启用它
'disable_remote_validation' => false,
答案 1 :(得分:0)
唯一验证需要表名后的列名。我假设你的列名在数据库中是email
。您的电子邮件规则应如下所示:
'email' => 'required|unique:users,email|email|max:255',
答案 2 :(得分:0)
return [
'name' => 'required',
'email' => 'required|email|unique:`admin_users`,email',
'phone' => 'required|unique:admin_users,phone',
'password' => 'required|min:6|max:16'
];
答案 3 :(得分:-1)
我认为问题是:这个包不支持远程验证,因为我可以在Config / jsValidation.php中看到:
/ * *启用或禁用数据库和自定义规则的Ajax验证。 *默认情况下,通过AJAX验证Unique,ActiveURL,Exists和自定义验证 * / ' disable_remote_validation' =>假,
那么如何通过AJAX验证此规则?请问有什么教程吗?