Php Laravel:提交后如何显示表单?

Php Laravel:提交后如何显示表单?,php,laravel,web,Php,Laravel,Web,我是Laravel的新手,目前正在从事一个项目,在该项目中,客人输入预订酒店房间的表格数据,提交后,他们将被重定向到显示他们刚刚完成预订的页面。我知道这可以通过允许来宾创建登录帐户来实现,但我的项目只需要登录后端(admin)。(Q2.)客人还可以通过输入预订ID和姓氏查看预订 我的控制器: public function store(Request $request) { $book = new book(); $book->title = $request

我是Laravel的新手,目前正在从事一个项目,在该项目中,客人输入预订酒店房间的表格数据,提交后,他们将被重定向到显示他们刚刚完成预订的页面。我知道这可以通过允许来宾创建登录帐户来实现,但我的项目只需要登录后端(admin)。(Q2.)客人还可以通过输入预订ID和姓氏查看预订

我的控制器:

public function store(Request $request)
   {
      $book = new book();
      $book->title = $request->input('title');
      $book->fname = $request->input('firstname');
      $book->lname = $request->input('lastname');
      $book->country = $request->input('country');
      $book->phone = $request->input('phone');
      $book->email = $request->input('email');
       $book->no_rooms = $request->input('no_rooms');
       $book->room_type_id = $request->input('type_room');
       $book->no_adults = $request->input('adults');
       $book->no_children = $request->input('children');
       $book->meal_id = $request->input('meal');
       $book->check_in = $request->input('check_in');
       $book->check_out = $request->input('check_out');
       $book->save();
   }
   public function show(book $book)
{

   return view('book.show', compact('book'));
} 
提交后我希望其显示的方式:

<div class="row">
<div class="col-6">
<table class="table table-striped text-dark">
<tbody>
<tr>
<td> Name: </td>
<td> {{$book->title}} &nbsp; {{$book->firstname}} &nbsp; {{$book->lastname}}    </td>
</tr>
<tr>
<td> Phone </td>
<td> {{$book->phone}}     </td>
</tr>
<tr>
<td> Email </td>
<td> {{$book->email}}     </td>
</tr>
<tr>
<td> Phone </td>
<td> {{$book->phone}}     </td>
</tr>
<tr>
<td> Passport Issued: </td>
<td> {{$book->country}}     </td>
</tr>
<tr>
<td> Number of rooms: </td>
<td> {{$book->no_rooms}}     </td>
</tr>
<tr>
<td> Room Type </td>
<td> {{$book->type_room}}     </td>
</tr>
<tr>
<td> No of adults: </td>
<td> {{$book->adults}}     </td>
</tr><tr>
<td> No of children: </td>
<td> {{$book->children}}     </td>
</tr>
<tr>
<td> Meal plan: </td>
<td> {{$book->meals_id}}     </td>
</tr>
<tr>
<td> Check-in: </td>
<td> {{$book->check_in}}     </td>
</tr>
<tr>
<td> Check-out: </td>
<td> {{$book->check_out}}     </td>
</tr>
</tbody>
</table>

</div>
</div>

姓名:
{{$book->title}{{$book->firstname}{{{$book->lastname}}
电话
{{$book->phone}
电子邮件
{{$book->email}
电话
{{$book->phone}
签发的护照:
{{$book->country}
房间数量:
{{$book->no_rooms}
房间类型
{{$book->type_room}
成人人数:
{{$book->成人}
儿童人数:
{{$book->children}
膳食计划:
{{$book->founds\u id}
登记入住:
{{$book->签入}
退房:
{{$book->签出}

您只需使用laravel helper重定向()


在此处阅读更多信息:

您可以从存储方法的底部重定向到show方法:

// Replace MyController with the name of your controller
return redirect()->action(
    'MyController@show', ['book' => $book]
);

有关更多信息,请查看文档:

如果我正确理解您的情况,您希望显示用户在提交表单后介绍的相同数据

我可以认为,仅仅重定向到一个显示div的页面而不显示任何内容是不够的。您仍然需要访问表单中输入的数据。 Laravel将表单数据存储在一个名为old的会话变量中,根据文档,该变量应该在提交后的下一个请求期间可用,所以您可以尝试使用

<table class="table table-striped text-dark">
    <tbody>
        <tr>
            <td> Name: </td>
            <td> {{ old('title') }} &nbsp; {{ old('firstname') }} &nbsp; {{ old('lastname') }}    </td>
        </tr>
        <tr>
            <td> Phone </td>
            <td> {{ old('phone') }}     </td>
        </tr>
        <tr>
            <td> Email </td>
            <td> {{ old('email') }}     </td>
        </tr>
        <tr>
            <td> Phone </td>
            <td> {{ old('phone') }}     </td>
        </tr>
        <tr>
            <td> Passport Issued: </td>
            <td> {{ old('country') }}     </td>
        </tr>
        <tr>
            <td> Number of rooms: </td>
            <td> {{ old('no_rooms') }}     </td>
        </tr>
        <tr>
            <td> Room Type </td>
            <td> {{ old('type_room') }}     </td>
        </tr>
        <tr>
            <td> No of adults: </td>
            <td> {{ old('adults') }}     </td>
        </tr><tr>
            <td> No of children: </td>
            <td> {{ old('children') }}     </td>
        </tr>
        <tr>
            <td> Meal plan: </td>
            <td> {{ old('meals_id') }}     </td>
        </tr>
        <tr>
            <td> Check-in: </td>
            <td> {{ old('check_in') }}     </td>
        </tr>
        <tr>
            <td> Check-out: </td>
            <td> {{ old('check_out') }}     </td>
        </tr>
    </tbody>
</table>

姓名:
{{old('title')}}{{old('firstname')}}{{old('lastname')}}
电话
{{old('phone')}
电子邮件
{{old('email')}
电话
{{old('phone')}
签发的护照:
{{old('country')}
房间数量:
{{old('no_rooms')}
房间类型
{{old('type_room')}
成人人数:
{{old('成人')}
儿童人数:
{{old('children')}
膳食计划:
{{old('founds_id')}
登记入住:
{{old('check_in')}
退房:
{{old('check_out')}
为了防止由于连续重定向而导致会话中没有可用的旧数据,您应该使用flash将这些数据注入会话中。
您可以找到更详细的信息

我尝试过这个方法,它确实重定向了页面,但没有显示信息,这是我目前面临的问题。我尝试过这个方法,它确实重定向了页面,但没有显示信息,这就是我目前面临的问题。@Faizan您在保存后是否将
重定向
放在
存储
方法中?@Tpojka是的,我在保存后将其放在存储方法中。它重定向到show.blade.php,但不显示提交的表单中的任何内容。很遗憾,我没有正确理解您的问题。在这种情况下,解决方案使用旧助手检索数据并将其放入Farid Silva所写的value=”“中。
book
类名是否正确(即小写“b”)?@Tpojka是的,小写<代码>课程手册扩展模型您应该坚持使用它,这将帮助您避免80%的非受迫性错误。然而,您是否已检查控制器中的数据是否不可用?不要返回视图,而是将dd($booking)放在show方法中并检查那里有什么可用。@Tpojka是的,你是对的,即使在我创建虚拟项目时,我也遵循它,但由于某种原因,现在我忘记了它。其他人通过使用flash()和旧变量帮助了我。但现在,我正努力根据预订参考和最后一条路线向客人展示他/她的预订。谢谢,这就是我要找的!但是当客人试图查看预订时,我想使用相同的show.blade.php文件来显示输出,即,他输入预订参考号,然后说出他/她的姓氏来查看预订(show.blade)Hi Faizan,所以我误解了您的需要!如果您的用户必须输入其预订参考号,您只需提出一个数据库请求,然后向用户显示其结果,而不是在提交原始表单之后,事实上,这可能是在任何时候。您是否能够创建新表单并向数据库提出必要的请求以获取所需的信息?不,您实际上理解了我的两个问题,您帮助我解决了第一个问题!以后你告诉我我还没有这样做,我将实现的逻辑是,获取用户参考号和姓氏(例如),向DB发出请求,检查它是否存在,如果是,则向他们显示它,否则只显示它不存在。非常感谢你的帮助,真的!很高兴为您效劳。如果你需要进一步的帮助,请给我发个短信。当做
// Replace MyController with the name of your controller
return redirect()->action(
    'MyController@show', ['book' => $book]
);
<table class="table table-striped text-dark">
    <tbody>
        <tr>
            <td> Name: </td>
            <td> {{ old('title') }} &nbsp; {{ old('firstname') }} &nbsp; {{ old('lastname') }}    </td>
        </tr>
        <tr>
            <td> Phone </td>
            <td> {{ old('phone') }}     </td>
        </tr>
        <tr>
            <td> Email </td>
            <td> {{ old('email') }}     </td>
        </tr>
        <tr>
            <td> Phone </td>
            <td> {{ old('phone') }}     </td>
        </tr>
        <tr>
            <td> Passport Issued: </td>
            <td> {{ old('country') }}     </td>
        </tr>
        <tr>
            <td> Number of rooms: </td>
            <td> {{ old('no_rooms') }}     </td>
        </tr>
        <tr>
            <td> Room Type </td>
            <td> {{ old('type_room') }}     </td>
        </tr>
        <tr>
            <td> No of adults: </td>
            <td> {{ old('adults') }}     </td>
        </tr><tr>
            <td> No of children: </td>
            <td> {{ old('children') }}     </td>
        </tr>
        <tr>
            <td> Meal plan: </td>
            <td> {{ old('meals_id') }}     </td>
        </tr>
        <tr>
            <td> Check-in: </td>
            <td> {{ old('check_in') }}     </td>
        </tr>
        <tr>
            <td> Check-out: </td>
            <td> {{ old('check_out') }}     </td>
        </tr>
    </tbody>
</table>