【发布时间】:2018-09-09 10:41:11
【问题描述】:
我有篮球比赛详情页面“single.blade.php”和一个购票页面“payment.blade.php”。在比赛详情页面中,用户可以通过选择选项选择门票的类型以及他们想要的每张门票的数量。
我对如何获取用户在比赛详细信息页面中选择的每张门票的数量、在会话中存储该信息并将该信息发送到支付页面以显示所选门票类型和数量存有疑问在下一页(付款页面)。
我对这个问题的代码结构:
我有一个 FrontController,它有 single() 方法来显示比赛详情页面:
public function single($id){
$match = Match::where('id', $id)->first();
$tickets = Ticket::where('match_id', $match_id->id)->get();
return view('matchs.show')->with('match',$match)->with('match', $match)->with('tickets', $tickets);
}
然后在比赛详细信息页面中,我列出了门票的类型,每张都有一个选择菜单,因此用户可以选择每张需要多少张门票:
<ul>
@foreach($tickets as $ticket)
<li>
<span>{{$ticket->title}}</span>
<form method="post" action="{{route('matchs.payment', ['id' => $match->id, 'slug' => $match->slug])}}">
<select name={{ $ticket->title }}>
<option selected>0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</form>
<span>X {{$ticket->showPrice()}}</span>
</li>
@endforeach
<li>
<span>TOTAL</span>
<span>0.00€</span>
</li>
<input type="submit" value="Go To Payment Page"/>
</form>
</ul>
用户选择数量并单击“下一步”后,他应该进入支付页面,并且在上一页中选择的类型和数量应该会出现在这个支付页面中。所以,我有一个 PaymentController 并创建了一个 storeQuantity() 方法。您知道如何在此方法中正确存储会话中选择的类型和数量,然后如何在付款页面中显示此信息吗?
class PaymentController extends Controller
{
public function storeQuantity(Request $request){
//dd($request->all());
return view('matchs.payment');
}
}
路线:
Route::post('/match/{id}/{slug?}/payment', [
'uses' => 'PaymentController@storeQuantity',
'as' =>'matchs.payment'
]);
dd($request->all()); 显示:
array:2 [▼
"center_bench" => "1"
"left_bench" => "1"
]
注意:我也不知道它是否真的需要会话,也许下一个按钮可以有一个发布路线并将必要的信息(选择的门票和数量)传递到下一页(付款页面)但我不明白这个过程是。
【问题讨论】:
-
你可以使用 sesssion()->put('ticket', SELECTED_NUMBER);您可以像 session()->get('ticket') 一样检索它。我认为您也可以在视图中使用这些助手。
-
谢谢,但是选择菜单名称是动态的,“name={{ $ticket->title }}”,所以如何获取票的标题和选择的数量并将其存储在会话中?