【发布时间】:2014-10-17 01:52:35
【问题描述】:
我在 Redirect::route 中传递两个带有“with”的变量时遇到问题...这是我的代码...
怎么做
return Redirect::route('cart-success')->with(
array(
'cartSuccess' => 'You successfuly ordered. To track your order processing check your email',
'cartItems' => Cart::contents()
)
);
这里是错误:
未定义变量:cartItems(查看:C:\xampp\htdocs\laravel-webshop\laravel\app\views\cart-success.blade.php)
Route::group(array('before' => 'csrf'), function() {
//Checkout user POST
Route::post('/co-user', array(
'as' => 'co-user-post',
'uses' => 'CartController@postCoUser'
));
});
控制器
public function postCoUser() {
$validator = Validator::make(Input::all(), array(
'cardholdername' => 'required',
'cardnumber' => 'required|min:16|max:16',
'cvv' => 'required|min:3'
));
if($validator->fails()) {
return Redirect::route('checkout')
->withErrors($validator)
->withInput();
} else {
return Redirect::route('cart-success')->with(
array(
'cartSuccess' => 'You successfuly ordered. To track your order processing check your email',
'cartItems' => Cart::contents()
)
);
}
}
查看
@extends('publicLayout.main')
@section('content')
@if(Session::has('cartSuccess'))
<p>{{ Session::get('cartSuccess') }}</p>
<?php $total = 0; ?>
@foreach ($cartItems as $cartItem)
Name: {{ $cartItem->name }} <br>
Price: {{ $cartItem->price }} €<br>
Quantity: {{ $cartItem->quantity }} <br>
<?php $final = $cartItem->price * $cartItem->quantity; ?>
Final price: {{ $final }} €<br>
<?php $total += $final; ?>
<hr>
@endforeach
Total: {{ $total }} €
@endif
@stop
【问题讨论】:
-
Redirect::with()设置会话变量,而不是设置视图变量。路由cart-success中定义的方法在哪里?从那里您必须检索会话值并使用View::make()将该值传递给您的视图 -
我需要会话变量……我可以得到一个会话变量,但不能得到两个……这是问题
-
route('cart-success')去哪儿了?您可以将代码也发布到该路由(控制器方法)吗? -
仍然没有显示
cart-success在哪里?您只显示您的 POST 路线,而不是 提交后的路线(成功路线) -
我又编辑了...是你需要的吗?
标签: php laravel frameworks