J'aimerai utiliser un contrôleur CRUD pour gérer le profil administrateur. J'ai créé le contrôleur et modifié mes routes / web.php comme ceci.
admin/profile -> admin.profile.index
admin/profile/{profile} -> admin.profile.destroy
admin/profile/{profile} -> admin.profile.update
admin/profile/{profile}/edit -> admin.profile.edit
Ceci crée les routes suivantes.
Route::group(['prefix' => 'admin', 'namespace' => 'Admin', 'as' => 'admin.', 'middleware' => ['auth:admin']], function(){
Route::resource('profile', 'ProfileController')->only(['index', 'edit', 'update', 'destroy']);
});
Depuis que j'obtiens le admin_id via la session, je n'ai pas besoin de l'obtenir via le URL via le paramètre de profil. Je sais que je pourrais simplement ignorer le paramètre, mais cela rend l'URL inutile longtemps. Est-il possible de supprimer le paramètre {profile} des itinéraires, afin que mes itinéraires soient comme enseignant / profil / modifier et non comme enseignant / profil / 12345678 / modifier ?
3 Réponses :
Vous pouvez utiliser des itinéraires séparés au lieu de ressources pour votre opération individuelle. Comme
For index operation you can use:-
Route::get('profile', 'ProfileController@index');
For destroy operation you can use:-
Route::delete('profile', 'ProfileController@destroy');
For edit operation you can use:-
Route::put('profile', 'ProfileController@edit');
Et vous pouvez envoyer votre admin_id en entrée ou en session. J'espère que cela fonctionnera pour vous :)
Je vous suggère d'utiliser "Slugs" au lieu de l'identifiant de profil
Oui, vous pouvez supprimer la partie {profile} si vous appelez d'abord le profil nécessaire dans le contrôleur comme tel:
<form method="post" action="{{ route('teacher.profile.update', $teacher->id) }}">
@method('PATCH')
@csrf
ID: <input type="text" name="id" value={{ $teacher->id}} />
<button type="submit">Update</button>
</form>
Et à l'intérieur de la page d'affichage ( enseignant / profil / modifier), vous pouvez appeler les données comme telles:
public function edit(){
$teacher = Auth::user();
return view('teacher.profile.edit', compact('teacher'));
}
J'espère que cette aide. Bravo!