wake-up-neo.net

Weiterleitung :: Route mit Parameter in URL in Laravel 5

Ich entwickle eine Laravel 5-App. Ich habe diese Route 

Route::get('states/{id}/regions', ['as' => 'regions', 'uses' => '[email protected]']);

Nachdem ich in meinem Controller einen Postanruf richtig gemacht habe, möchte ich mit diesem Befehl zu dieser Ansicht umleiten:

return \Redirect::route('regions')->with('message', 'State saved correctly!!!');

Das Problem ist, dass ich nicht weiß, wie ich den Parameter {id} übergeben kann, der in meiner URL enthalten sein sollte.

Vielen Dank.

13
Bellots

Sie können die Routenparameter als zweites Argument an route() übergeben:

return \Redirect::route('regions', [$id])->with('message', 'State saved correctly!!!');

Wenn es nur eines ist, müssen Sie es auch nicht als Array schreiben:

return \Redirect::route('regions', $id)->with('message', 'State saved correctly!!!');

Wenn Ihre Route mehr oder nur einen Parameter enthält, Sie jedoch eindeutig angeben möchten, welcher Parameter über jeden Wert verfügt (zur besseren Lesbarkeit), können Sie Folgendes tun:

return \Redirect::route('regions', ['id'=>$id,'OTHER_PARAM'=>'XXX',...])->with('message', 'State saved correctly!!!');
11
lukasgeiter

Du könntest es immer noch so machen: 

return redirect()->route('regions', $id)->with('message', 'State saved correctly!!!');

In Fällen, in denen Sie mehrere Parameter haben, können Sie die Parameter als Array übergeben, zum Beispiel, Sie müssten die Hauptstadt einer bestimmten Region Ihrer Route übergeben. Ihre Route könnte etwa so aussehen:

Route::get('states/{id}/regions/{capital}', ['as' => 'regions', 'uses' => '[email protected]']);

und Sie können dann weiterleiten mit:

return redirect()->route('regions', ['id' = $id, 'capital' => $capital])->with('message', 'State saved correctly!!!');
5
Awa Melvine

Sie können den Parameter {id} mit einer solchen Umleitung übergeben 

return \Redirect::route('regions', [$id])->with('message', 'State saved correctly!!!');
0
BeingCoder's

Wenn der Router folgendes enthält:

Route::get('/displayCustomer/{id}','[email protected]')->middleware('auth','admin');

und in der Steuerung kann die Umleitung so erfolgen

    public function displayCustomer($id){
        $user = DB::table('customer_infos')->where('customer_id', $id)->first();       
        return view('admin.DisplayCustomer', compact('user', $user));
    }

    public function approveCustomerInvoice(Request $request,$id)
    {
        $customer = CustomerInfo::find($id);
        $customer->status = 1;
        $customer->save();

       return redirect()->action('[email protected]', ['id' => $id])->with('message', 'Customer Invoice Approved!!!');
    }
0

Es gibt verschiedene Möglichkeiten, diese URL in laravel umzuleiten:
1. Verwendung von URL mit globaler Redirect-Hilfsfunktion
return redirect('states/'.$id.'/regions')->with('message', 'State saved correctly!!!');
2. Benannte Route verwenden
return redirect()->route('regions', ['id' => $id])->with('message', 'State saved correctly!!!');
3. Controller-Aktion verwenden
return redirect()->action('[email protected]', ['id' => $id])->with('message', 'State saved correctly!!!');

0
Satendra Maurya