2016-12-05 4 views
0

ユーザーはウェブサイトに登録することができます。彼らがするとき、それは3ページのプロセスです。これは、各ページの後に1つのユーザーDBエントリに新しいデータを保存し、セッションにユーザーIDを格納し、次のページでatをフェッチすることで実装しました。私は、戻るボタンを実装する方法を見つけようとしているので、ユーザーは戻ってその詳細をやり直すことができます。複数ページフォーム(ラベール)の戻るボタンを実装

ページ1

public function submitFirst(Request $request) 
{ 
    // create user 
    // put data into user 
    // save user 
    // redirect to second page 
} 

2ページ

すべての3つのページのためのフロントエンドが

<form class="form-horizontal" role="form" method="POST" action="{{ url('/step/2') }}"> 
    <!--fields here--> 
    <button type="submit">Submit</button> 
</form> 

ちょうど典型的な形の構造である各ステージのバックエンドは、次のようになります

public function submitTwo(Request $request) 
{ 
    // Fetch user from session 
    // put data into user 
    // save user 
    // redirect to third page 
} 

ページ3

public function submitTwo(Request $request) 
{ 
    // Fetch user from session 
    // put data into user 
    // save user 
    // redirect to login 
} 

私は戻って最初のページに行くと、再びそれを埋める場合しかし、それは単に代わりに、現在のユーザーのフィールドを変更する新しいユーザーを作成します。

私は最高の解決策が何であるか疑問に思っています。

+0

あなたの質問は、実際にどのような明確ではありませんあなたは欲しいですか? –

+0

あなたの提供されたコードは解決に役立ちません –

答えて

0

以下のロジックを使用することができます。

public function submitFirst(Request $request) { 
    if($request->session()->has('user_id')){ //If user_id exists in session 
     $user = User::find(session); 
    }else{ 
     $user = new User; 
    } 
    $user->name="blah blah"; 
    //rest of the user fields 
    $user->save(); 
} 
0

最初にフォームが送信されると、おそらくセッションにUserIdを格納できます。 そして、あなたが戻って最初のページに移動するとき、あなたは働くだろう、私は方法のそれぞれについて、次のようなものを想像

public function submitFirst(Request $request) 
{ 
     $id = \Session::get('user_id'); 
     $user = User::where('id','=',$id)->first; 
     if($user == null){ 
     // create user 
     // put data into user 
      \Session::put('user_id', $user->id);/*user id of the newly created user*/ 
     }else{ 
     // edit existing user 
     } 
    // save user 
    // redirect to second page 
} 
関連する問題