1

私はlaravel-jsValidation、https: //github.com/proengsoft/laravel-jsvalidationを使用しています.Uniqueルール以外はすべて正常に動作しています! ここに私が持っているもの: ルール:

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、 users テーブルに存在しないユーザー名と電子メールを入力した場合にのみ正常に動作します!

私のコードの間違いは何ですか?

ここに画像の説明を入力

4

4 に答える 4

1

私はlaravel-jsvalidationパッケージのメンテナーです。この問題は、リリース 1.3.0で修正されています。

ルールUniqueActiveURLExists、およびカスタム検証は自動的に検証されます。有効にするだけ

 'disable_remote_validation' => false,
于 2015-12-29T20:54:37.283 に答える
0
return [
            'name' => 'required',
            'email' => 'required|email|unique:`admin_users`,email',
            'phone' => 'required|unique:admin_users,phone',
            'password' => 'required|min:6|max:16'
        ];
于 2021-07-16T15:06:58.053 に答える
0

一意の検証には、テーブル名の後に列名が必要です。あなたの列名はemailデータベースにあると思います。メールのルールは次のようになります。

'email' => 'required|unique:users,email|email|max:255',
于 2015-12-23T19:29:05.293 に答える
-1

問題は次のとおりだと思います: Config/jsValidation.php で読むことができるように、このパッケージはリモート検証をサポートしていません:

/* * データベースとカスタム ルールの Ajax 検証を有効または無効にします。* デフォルトでは、Unique、ActiveURL、Exists、およびカスタム検証は AJAX 経由で検証されます */ 'disable_remote_validation' => false,

では、AJAX を介してこのルールを検証するにはどうすればよいでしょうか? チュートリアルはありますか?

于 2015-12-24T08:54:16.407 に答える