2016-06-17 26 views
-1

私はsponsor_id(スポンサーの電子メール)を既にシステムに登録されているユーザーに対してチェックしようとしています。スポンサーが存在する場合、ユーザーは登録を続けることができ、そうでなければエラーメッセージが表示されます。値が存在するかどうかを確認します

ユーザースポンサーIDが正しい場合、登録時に、(entry_by)フィールドに値をスポンサーのユーザーIDに設定する必要があります。

私はリファラを追加した場合だけで、ユーザーに電子メールを送りコードがうまく働いていた明確にすることなく、追加されます。ここでは

は(変数$referrerが必要です)、私がこれまで持っており、それは私にエラーを与えているコードがありますスポンサーIDが有効かどうかを検証します。

これで、すでに登録されている電子メールで入力された参照元(スポンサーの電子メール)を確認する必要があります。見つかった場合は(entry_id)から(sponsor_id)elseエラーです。

public function postCreate(Request $request) { 

    $rules = array(
     'username'=>'required|alpha_num|min:2', 
     'firstname'=>'required|alpha_num|min:2', 
     'lastname'=>'required|alpha_num|min:2', 
     'gender'=>'required', 
     'age'=>'required|alpha_num|min:2' 
     'phone'=>'required|min:10', 
     'email'=>'required|email|unique:users', 
     'password'=>'required|between:6,12|confirmed', 
     'password_confirmation'=>'required|between:6,12', 
     'province'=>'required', 
     'referrer'=>'required|email', 
     ); 

    $validator = Validator::make($request->all(), $rules); 


    if ($validator->passes()) { 

     $authen = new User; 
     $authen->username = $request->input('username'); 
     $authen->first_name = $request->input('firstname'); 
     $authen->last_name = $request->input('lastname'); 
     $authen->email = trim($request->input('email')); 
     $authen->password = \Hash::make($request->input('password')); 
     $authen->gender = $request->input('gender'); 
     $authen->phone = $request->input('phone'); 
     $authen->province = $request->input('province'); 
     $authen->referrer = $request->input('referrer'); 
     $authen->role_id = 3; 


      // User referrer Code -- It will use entry_by == id , if the email address is the same as referrer 


     if ($referrer == $email = User::findOrFail($email)) 
     { 
      $entry_by = $id; 
     } 
      else 
      { 
       $message= " There is an error on the referrer code provided."; 
      } 

     $authen->save(); 

     $data = array(
      'username'  => $request->input('username') , 
      'firstname'  => $request->input('firstname') , 
      'lastname'  => $request->input('lastname') , 
      'email'   => $request->input('email') , 
      'password'  => $request->input('password') , 
      'gender'  => $request->input('gender') , 
      'province'  => $request->input('province') , 
      'age'   => $request->input('age') , 
      'phone'   => $request->input('phone') , 
      'referrer'  => $request->input('referrer') , 


     ); 

    return redirect('register')->with('message', 'Successfully registered.!'); 
} 

public function getLogout() { 
    auth()->logout(); 

    return redirect()->route('index'); 
} 
+2

私は例のコードは、あなたの質問を表し方法を確認することはできません。しかし、 '$ entry_by == $ id'は比較式であり、' $ entry_by'の値を '$ id'に設定しません。そのためには '='を一つ使用してください。 – Devon

+0

「新しいコーディングで」自信を持っているなら、フレームワークにまっすぐ飛び込まないように十分にストレスを感じることはできません – Jonathan

+0

私はコーディングを知っているのではなく、人をやって学習しています...私はチュートリアルを通り、同時。 ここに投稿することがあなたに不便を与えている場合は、お詫び申し上げます。 –

答えて

0

私は私はあなたが右の理解かどうかわからないですが、私は、これは、このようにすべきだと思います:あなたは私はリファラを仮定ので、リファラ変数や電子メールを初期化するところ

if (User::findOrFail(input('referrer'))) 
     { 
      $entry_by = $id; 
     } 
      else 
      { 
       $message= " There is an error on the referrer code provided."; 
      } 

私が見ることができません= $ input ['referer']とメールが間違っています。

編集:

//Get user input 
$something = Input::get('sth'); 
//Check if this exists in db 
$check = YourModel::findOrFail($something); 

if($check) { 
// yes it is in db already 
// set some val as you wanted 
$myvar = "oh boy"; 
} else { 
// no it's not 
} 
+0

こんにちは@ ixi、多分私はこれに間違った方法で近づいています。私の質問を言い換えてみましょう。 ユーザーが入力した値が有効かどうか(dbを確認してください)、これが真であれば別のフィールドを設定するにはどうすればよいですか。 スポンサーIDがユーザー登録に有効かどうかを確認する必要があります。真であれば、別の列の隠しフィールドに値を割り当てます($ id - > $ entry_by) ごめんなさい。 –

+0

私はこれを私の答えの版に合わせて疲れました。 – Lixi

関連する問題