2017-05-10 1 views
2

Je suis nouveau à Laravel monde (en utilisant 5.0) et j'apprends comment router. Je cette routeLaravel 5.0 masquage routes

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

et UserController

public function showProfile($id) 
    { 
     return view('user.profile', ['user' => User::findOrFail($id)]); 
    } 

tout fonctionne bien et l'URL générée est par exemple localhost: 8000/utilisateurs/1.

Il est possible de masquer cette route, ayant à la place quelque chose comme localhost: 8000/users/profile, rendant la requête sous le capot? Merci à tous

+1

Vous devez utiliser des itinéraires distincts pour ** un ** utilisateur et ** l'utilisateur **. Par ce que je veux dire, la route '/ user/profile' devrait gérer l'utilisateur connecté, alors que'/user/{id} 'devrait seulement gérer un seul utilisateur, tel que spécifié par cet ID. –

+0

Merci pour votre réponse, je vois votre point. Mon problème est que même pour l'utilisateur connecté, je ne veux pas qu'il soit en mesure de voir son identifiant, je veux dire par exemple utilisateurs/2 – Daitarn

+0

essentiellement ce numéro est l'identifiant de l'utilisateur .. si vous vous attendez à le masquer avec profil que vous devez ensuite passer est comme chaîne de requête mais encore une fois je suppose que vous ne voulez pas que vous pouvez soumettre une demande de poste à l'utilisateur/profil avec spécifiant le paramètre requis et dans le contrôleur retournez l'enregistrement – RohitS

Répondre

0

La chose à faire serait de simplement tirer dans l'utilisateur authentifié simple:

Route::get('users/profile', '[email protected]'); 



public function showProfile() 
{ 
    return view('user.profile', ['user' => Auth::user()]); 
} 
+0

Oui, c'est ce que je cherchais – Daitarn

0

Vous pouvez vérifier le type $id.

public function showProfile($id) { 
    if(is_numeric($id)) { 
     return view('user.profile', ['user' => User::findOrFail($id)]); 
    } else { 
     // Profile page. 
     return view('user.profile_page'); 
    } 
}