Reynaldo
Reynaldo

Reputation: 57

laravel 8 passing data to redirect url

i have store function for save data to database and i want redirect to another url with passing $invoice variable

this is my store function :

 $order = Order::create([
        'no' => $invoice,
        'spg' => $request->spg,
        'nama' => $request->nama,
        'hp' => $request->hp,
        'alamat' => $request->alamat,
    ]);
 return redirect('invoicelink', compact('invoice'));

this is my route file:

Route::resource('/', OrderController::class);
Route::get('invoicelink/{invoice}', [OrderController::class, 'invoicelink'])->name('invoicelink');

and this is my invoicelink function:

public function invoicelink($invoice)
    {
        dd($invoice);
    }

How to do it? very grateful if someone help to solve my problem. thanks

Upvotes: 0

Views: 1758

Answers (2)

Reynaldo
Reynaldo

Reputation: 57

i found the solution:

web.php

Route::get('invoicelink/{invoice}', [OrderController::class, 'invoicelink'])->name('invoicelink');

controller:

public function invoicelink($invoice)
{
    //dd($invoice);
    return $invoice;
}

then use redirect:

return redirect()->route('invoicelink', [$invoice]);

Upvotes: 0

Jacob Brassington
Jacob Brassington

Reputation: 257

If you look at the helper function you are calling, I don't think it is what you are looking for.

function redirect($to = null, $status = 302, $headers = [], $secure = null)
{
    if (is_null($to)) {
        return app('redirect');
    }

    return app('redirect')->to($to, $status, $headers, $secure);
}

I think what you want is

Redirect::route('invoiceLink', $invoice);

You can also use the redirect function, but it would look like this

redirect()->route('invoiceLink', $invoice);

You can see this documented here https://laravel.com/docs/8.x/responses#redirecting-named-routes

Upvotes: 1

Related Questions