Search code examples
laravelhttpscontrollerroutespayment-processing

How can I redirect from a controller with a value to another controller in laravel?


OrderController.php

if (request('payment_method') == 'online') {
    return redirect(route('payments.pay', $order->id));
}

web.php

Route::POST('/pay/{orderId}', 'PublicSslCommerzPaymentController@index')->name('payments.pay');

PublicSslCommerzPaymentController.php

session_start();
class PublicSslCommerzPaymentController extends Controller
{
    public function index(Request $request, $ordId)
    {
       //code...
    }
}

Here in index function I need the order id from `OrderController.

But the Error I am getting

Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException The GET method is not supported for this route. Supported methods: POST.


Solution

  • if you want to redirect to named route you can use this:

    return redirect()->route('payments.pay', ['orderId' => $order->id]);
    

    if you want generate redirect to controller action you can try this:

    return redirect()->action(
        'PublicSslCommerzPaymentController@index', ['ordId' => $order->id]]
    );