【问题标题】:Implement a back button for multi-page form (laravel)实现多页表单的后退按钮(laravel)
【发布时间】:2016-12-05 16:10:21
【问题描述】:

用户可以注册网站。当他们这样做时,这是一个三页的过程。我通过在每一页之后将新数据保存到一个用户数据库条目来实现这一点,然后将用户 ID 存储在会话中并在下一页获取。我一直在尝试找到一种方法来实现后退按钮,以便用户可以返回并重做他们的详细信息。

所有三个页面的前端只是一个典型的表单结构

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

每个阶段的后端如下所示:

第 1 页

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

第 2 页

 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
 }

但是,如果我返回第一页并再次填写,它只会创建一个新用户,而不是修改当前用户的字段。

我想知道最好的解决方案是什么。

【问题讨论】:

  • 你的问题不清楚你到底想要什么?
  • 您提供的代码对解决方案没有帮助

标签: php laravel laravel-5


【解决方案1】:

我认为每种方法都可以使用以下内容:

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();
}

【讨论】:

    【解决方案2】:

    提交第一个表单后,您可能可以将 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
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-23
      相关资源
      最近更新 更多