【发布时间】:2018-10-08 14:41:43
【问题描述】:
我在registration.blade.php下面有这段代码:
@foreach($selectedTypes as $k=>$selectedType)
<li>
<span class="font-size-sm">{{$k}}</span>
<span class="font-size-sm">{{$selectedType['quantity']}}</span>
<span class="font-size-sm">{{ number_format($selectedType['price'], 2)}}€</span>
<span class="font-size-sm">{{ number_format($selectedType['subtotal'], 2)}}€</span>
</li>
@endforeach
而且有时在registration.blade.php页面出现错误“http://proj.test/congress/1/congress-test/registration”:
Undefined variable: selectedType
问题应该是会话“selectedTypes”不存在或已过期。因此,如果用户在具有该代码“@foreach($selectedTypes as $k=>$selectedType)...”的注册页面中并且会话“selectedTypes”不存在,则可能有必要将用户重定向到他选择票证类型的页面。您是否知道这是否是解决问题的正确方法以及将用户重定向到具有该路线的大会详细信息页面所必需的:
Route::get('/congress/{id}/{slug?}', [
'uses' => 'FrontController@show',
'as' =>'congresses.show'
]);
用户在注册页面的哪里有下面的路由并且会话“selectedTypes”不存在?
Route::get('/congress/{id}/{slug?}/registration', [
'uses' => 'RegistrationController@displayRegistration',
'as' =>'congresses.registration'
]);
// 方法 storeQuantities() 其中 selectedTypes 存储在 session 中
public function storeQuantities(Request $request, $id, $slug = null){
$ttypeQuantities = $request->get('ttypes');
foreach($rtypeQuantities as $rtypeName => $quantity){
$ttype = TicketType::where('name', $ttypeName)->firstOrFail();
$price = $ttype->price;
$selectedTypes[$ttype->name]['quantity'] = $quantity;
$selectedTypes[$ttype->name]['price'] = $price;
$selectedTypes[$ttype->name]['subtotal'] = $price * $quantity;
$selectedTypes[$ttype->name]['id'] = $ttype->id;
}
Session::put('selectedTypes', $selectedTypes);
return redirect(route('congresses.registration',['id' => $id, 'slug' => $slug]));
}
【问题讨论】:
标签: laravel