2016-08-18 2 views
0

validator 방법으로 등록 양식에 유효성 검사를 시도하고 있습니다. $user->id을 내 nameemail 개의 배열 키에 연결할 예정이므로 사용자는 이미 취한 이메일 주소 &과 동일한 이름으로 등록 할 수 없습니다. laravel validation 5.1 인증 된 사용자

AuthController
<?php 

namespace App\Http\Controllers\Auth; 

use App\User; 
use Validator; 
use App\Http\Controllers\Controller; 
use Illuminate\Foundation\Auth\ThrottlesLogins; 
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers; 

class AuthController extends Controller 
{ 

    use AuthenticatesAndRegistersUsers, ThrottlesLogins; 

    public function __construct() 
    { 
     $this->middleware('guest', ['except' => 'getLogout']); 
    } 

    protected function validator(array $data) 
    { 

     return Validator::make($data, [ 
      'name' => 'required|regex:/^[a-zA-Z]+$/u|max:255|unique:users,name,'.$user->id, 
      'email' => 'required|email|max:255|unique:users'.$user->id, 
      'password' => 'required|confirmed|min:6', 
     ]); 
    } 

} 

내가이

// retrieve authenticated user 
    $user = Auth::user(); 
    protected function validator(array $data) 
    { 

     return Validator::make($data, [ 
      'name' => 'required|regex:/^[a-zA-Z]+$/u|max:255|unique:users,name,'.$user->id, 
      'email' => 'required|email|max:255|unique:users'.$user->id, 
      'password' => 'required|confirmed|min:6', 
     ]); 
    } 

처럼 내 검증 방법 위에 $user = Auth::user();를 추가 할 수 있도록 내가 Undefined variable: user 오류 메시지가 제출 누를 때마다하지만 난이 syntax error, unexpected '$user' 오류가

아래 메시지. 나는 내가 뭘 바라 보는 지 모르겠다.

답변

1

$user 개체가없는 새 사용자를 만들 때 확실히 Undefined variable: user 오류 메시지가 표시됩니다.

유효성 검사는 사용자 프로필을 업데이트하는 경우에만 작동합니다.

코드에 구문 오류가 있습니다. 올바른 내용은 다음과 같습니다.

return Validator::make($data, [ 
     'name' => 'required|regex:/^[a-zA-Z]+$/u|max:255|unique:users,name', 
     'email' => 'required|email|max:255|unique:users,email', 
     'password' => 'required|confirmed|min:6', 
    ]); 
+0

그래서 laravel로 등록하는 동안 중복 된 이름과 이메일 주소의 유효성을 검사 할 수 있습니까? 저를 올바른 방향으로 가르쳐 주시겠습니까? –

+0

이름 및 이메일 고유의 행을 만들고 싶습니까? 그게 사실이라면 $ user-> id를 사용하지 말아야합니다 – hizbul25

+0

나는 무엇을 성취하려고하는지 생각합니다. 예를 들어 사용자가 'foo'라는 이름으로 가입하고'foo @ foo.com'에게 이메일을 보내면 다른 사람들이 그 같은 자격증 명으로 등록하기를 원하지 않습니다. –