2016-12-05 4 views
0

Пользователи могут зарегистрироваться на сайте. Когда они это делают, это трехстраничный процесс. Я реализовал это, сохранив новые данные в одной записи пользователя БД после каждой страницы, затем сохраняя идентификатор пользователя в сеансе и выбрав на следующей странице. Я пытаюсь найти способ реализовать кнопку «Назад», чтобы пользователь мог вернуться и повторить свои детали.Реализовать кнопку возврата для многостраничной формы (laravel)

Передний конец для всех трех страниц является просто типичной формой структуры

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

Задний конец каждого этапа выглядит следующим образом:

Page 1

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

Page 2

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

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 
} 
Смежные вопросы