2016-06-13 2 views
0

Возможно ли переадресовать с одного контроллера на другой и передать переменные? Я имею в виду, что у меня есть функция отправки и после отправки я делаю перенаправление на url. Затем в другом контроллере пытается отобразить некоторую информацию на основе переменных. Это редирект с первого контроллераПередача переменных с одного контроллера на другой с помощью laravel

return Redirect::to('/cart/payment/order/' . $order->order_id . '+' . $order->user_id); 

затем во втором контроллере это

public function paymentView() { 


    $order = Order::where('order_id', $orderId)->first(); 

    if (!$order) { 
     App::abort(404); 
    } 

    $userID   = $order['user_id'];    
    $orderID  = $order['order_id']; 
} 

Вопрос в том, как получить $user_id и $order_id сейчас?

ответ

1

Сначала ваше заявление маршрут должен принять их, что-то вроде этого, в зависимости от вашего маршрута:

Route::get('cart/payment/order/{orderID}/{userID}'...

Тогда Laravel будет автоматически вводить их в методе контроллера:

public function paymentView($orderID, $userID,) {

И я рекомендую, чтобы ваш URL был с косой чертой без знака плюс:

return Redirect::to('/cart/payment/order/' . $order->order_id . '/' . $order->user_id);

+0

Хорошо, я внес изменения, поскольку вы предлагаете мне, но у меня есть 'production.ERROR: exception 'ErrorException' с сообщением 'Undefined variable: orderId' ...' когда я пытаюсь запросить здесь '$ order = Order :: where ('order_id', $ orderId) -> first(); ' –

+1

@JordanVit убедитесь, что имя переменной в маршруте и в методе контроллера соответствует тому, которое вы используете в предложении where. – TheFallen

+0

Да, это был 'orderID' вместо' orderId'. благодаря –

Смежные вопросы