2016-07-30 10 views
0

In meinem Projekt zwei Arten von Benutzern, Admin und Normaler Benutzer. Sie sind durch das Feld isAdmin in users Tabelle identifiziert. Benutzer können ihr Profil bearbeiten, indem Sie mit der Funktion unterWo benutzerdefinierte Middleware für die Authentifizierung anwenden Laravel 5.2

public function userEditprofile(){ 
    $user_detail = userDetail::find(Auth::user()->id); 
    $user_detail->address = Input::get('address'); 
    ....... 
    $user_detail->save() 
    return Redirect::route('showUserProfile'); 
} 

und Route ist

Route::group(['middleware' => 'my_profile'], function() { 
    Route::get('/editprofile', array('uses' => '[email protected]', 'as' => 'userEditprofile')); 
}); 

Admin auch alle Benutzer-Profile bearbeiten können mit

public function adminEditUserprofile($user_id){ 
     $user_detail = userDetail::find($user_id); 
     $user_detail->address = Input::get('address'); 
     ....... 
     $user_detail->save() 
     return Redirect::route('showUserProfile', $user_id); 
    } 

In beiden Fällen Aktion ist gleich, aber In der ersten Methode ist kein Parameter erforderlich. Aber im Fall von admin ist ein Parameter erforderlich. Kann ich den Code auf andere Weise optimieren? Ich bin ein selbst erlernter Programmierer. Ich kenne keine effizienten Programmiermethoden. Kann jemand antworten?

Antwort

0

Ich glaube, Sie sollten rollenbasierte Autorisierung implementieren. Ein gutes Beispiel wurde bereits von rappasoft/laravel-5-boilerplate

implementiert. Sie sollten eigentlich diese Boilerplate bevorzugen, da es eine Menge enthält, die für die meisten Geschäftsanwendungen notwendig ist.