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.
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!!!');
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!!!');
Sie können den Parameter {id} mit einer solchen Umleitung übergeben
return \Redirect::route('regions', [$id])->with('message', 'State saved correctly!!!');
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!!!');
}
Es gibt verschiedene Möglichkeiten, diese URL in laravel umzuleiten:
1. Verwendung von URL mit globaler Redirect-Hilfsfunktionreturn redirect('states/'.$id.'/regions')->with('message', 'State saved correctly!!!');
2. Benannte Route verwendenreturn redirect()->route('regions', ['id' => $id])->with('message', 'State saved correctly!!!');
3. Controller-Aktion verwendenreturn redirect()->action('[email protected]', ['id' => $id])->with('message', 'State saved correctly!!!');