Je souhaite supprimer le tableau de bord de mon application Laravel Nova .
J'ai trouvé facile de le supprimer du menu de la barre latérale - commentez simplement le code /views/dashboard/navigation.blade.php
.
Cependant, je souhaite ajouter une logique de redirection (la page de destination dépend du rôle de l'utilisateur) donc lors de la navigation vers /
l'utilisateur sera redirigé vers une ressource ou un outil qui lui correspond.
(J'ai déjà implémenté une redirection après la connexion ( https://stackoverflow.com/a/54345123/1039488 )
J'ai essayé de le faire avec des cartes, mais il semble que ce ne soit pas la bonne solution.
Une idée où puis-je placer la logique de redirection?
3 Réponses :
Je viens de comprendre cela moi-même. Dans votre fichier Routes / web.php, ajoutez une route de redirection:
public function rootRedirectLogic(Request $request) { // some logic here return redirect()->route('YourRoute'); }
où {resource_name} est la forme plurielle de la ressource. Par exemple, '/ resources / posts'.
Dans votre cas, vous voudrez peut-être rediriger vers votre propre fichier de contrôle, où la logique de redirection peut être placée.
Route::get('/', 'YourController@rootRedirectLogic');
Ça ne marche pas. Quelque chose écrase la redirection dans 'routes'
@ Tudor-RaduBarbu Essayez de déplacer l'itinéraire plus tôt dans le fichier. Laravel utilise la première route correspondante, et je trouve qu'une route Resource :: bloque souvent des routes plus spécifiques en dessous.
Je suis tombé sur ce lien: Laravel Nova - Chemin Point Nova vers page de ressources
Je ne suis pas sûr que ce soit une solution permanente, mais la modification de LoginController.php fera l'affaire.
public function redirectPath() { return Nova::path().'/resources/***<resource_name>***; }
** changez le nom de votre propre ressource
Actuellement, cette méthode fonctionne:
À NovaServiceProvider.php, ajoutez à la méthode de démarrage:
if (location.pathname == '/' || location.pathname == '/dashboards/main'){ location.href = '/whereToRedirect' }
Créez le fichier fixMenu.js avec les éléments suivants:
Nova::script('menuFix', __DIR__.'/../../resources/js/fixMenu.js');
Avez-vous une réponse acceptée?