3
votes

Laravel nova - Redirection depuis le tableau de bord

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?


1 commentaires

Avez-vous une réponse acceptée?


3 Réponses :


0
votes

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');


2 commentaires

Ç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.



0
votes

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


0 commentaires

3
votes

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');


0 commentaires