2017-08-03 1 views
0

Ich habe eine RouteLaravel Routen Modell Bindung - leer Benutzer

http://192.168.10.15/user/33/edit 

Ich versuche, den Benutzer zurück auf der Grundlage der URL-ID.

public function edit($id, \App\User $user) 
    { 
     dd($user->id); 
     return view('user.update'); 

    } 

Die ID gibt null zurück, wie mache ich das?

Antwort

2

Für Weg zur Arbeit verbindlich sollten Sie typangedeutet Variablennamen ein Routensegment Namen übereinstimmen, wie die doc erforderlich haben:

Laravel löst automatisch Eloquent Modelle definiert in Routen oder Controller-Aktionen, deren Typ-andeutete Variablennamen entsprechen einer Route Segmentname. Zum Beispiel:

Route::get('api/users/{user}', function (App\User $user) { 
return $user->email; }); 

Da der Benutzer Variable $ als App \ User und der Variablenname Eloquent Modell entspricht Segment der {user} URI-Typ-andeutete, Laravel wird automatisch die Modellinstanz injizieren, die eine hat ID entspricht dem entsprechenden Wert aus der Anforderungs-URI. Wenn in der Datenbank keine übereinstimmende Modellinstanz gefunden wird, wird automatisch eine HTTP-Antwort 404 generiert.

Für Ihren Fall:

Route::get('/users/{user}/edit', '[email protected]'); 

Und in Ihrem Controller:

public function edit(\App\User $user) 
{ 
    dd($user->id); 
    return view('user.update')->withUser($user); 

} 
Verwandte Themen