I have problem to pass two varialbles with “with” in Redirect::route… Here is my code…
How to do this
return Redirect::route('cart-success')->with( array( 'cartSuccess' => 'You successfuly ordered. To track your order processing check your email', 'cartItems' => Cart::contents() ) );
Here is error:
Undefined variable: cartItems (View: C:xampphtdocslaravel-webshoplaravelappviewscart-success.blade.php)
Route::group(array('before' => 'csrf'), function() { //Checkout user POST Route::post('/co-user', array( 'as' => 'co-user-post', 'uses' => 'CartController@postCoUser' )); });
CONTROLLER
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() ) ); } }
View
@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
Advertisement
Answer
You may try this:
return Redirect::route('cart-success') ->with('cartSuccess', 'You successfuly ordered. To track your order processing check your email') ->with('cartItems', Cart::contents());
Or this:
return Redirect::route('cart-success', array('cartSuccess' => '...', 'cartItems' => '...'));