Laravel de Redirection avec un (des) Message
Je suis en train de rediriger vers la page précédente avec un message quand il ya une erreur fatale.
App::fatal(function($exception)
{
return Redirect::back()->with('msg', 'The Message');
}
Dans la vue en tentant d'accéder à l'msg avec
Sessions::get('msg')
Mais rien n'est arriver rendus, suis-je en train de faire quelque chose de mal ici?
- correction de faute de frappe Session
s
, et ajouteruse
en cas de besoin. En-dehors d'elle - devrait fonctionner.
Vous devez vous connecter pour publier un commentaire.
Essayer
et à l'intérieur de votre affichage de cette
return Redirect::back()->with('msg', 'The Message');
comment obtenir le "msg" ici ?Session::has('msg')
Session::has('msg')
et le 'msg' n'est pas là.->with()
laSession::flash()
.withErrors
fait la même chose, à savoir$this->with('errors', new MessageBag((array) $provider));
, Mais si j'essaie d'accéder à $msg avecwith('msg', 'The Message')
alors ça ne fonctionne pas.Session::put()
.withErrors('some error')
- de sorte que doit être une chaîne de caractères au lieu de tableau.Contrôleur
De la lame:
return redirect()->back()->with('success', 'your message here');
Approche Alternative serait
Contrôleur
Vue
Dans Laravel 5.4 la suite fonctionné pour moi:
withErrors()
méthode de la réponse est un tableau à deux éléments:['msg', 'The Message']
. Voir l'api pour les paramètres acceptables: laravel.com/api/4.2/Illuminate/Http/...withErrors()
méthode est un tableau avec un seul élément qui est unkey => value
paire, d'où la valeur est un tableau. 5.4 API: laravel.com/api/5.4/Illuminate/Http/...Vous avez une erreur (faute d'orthographe):
Devrait être:
Je pense que, maintenant, il doit travailler, il le fait pour moi.
Il suffit de régler le flash message et rediriger vers l'arrière à partir de votre contrôleur functiion.
Et ensuite, vous pouvez obtenir le message dans la vue de la lame de fichier.
{!! Session::get("msg", '') !!}
devrait être suffisant.get()
déjà de vérifier si le à existe et retourne la valeur par défaut contraire.Dans Laravel 5.5:
Dans la vue à l'aide de la Lame:
J'ai arrêté d'écrire moi-même pour laravel en faveur de la Laracasts paquet qui s'occupe de tout pour vous. Il est vraiment facile à utiliser et maintient votre code propre. Il y a même un laracast qui traite de la façon de l'utiliser. Tout ce que vous avez à faire:
Tirer dans le paquet à travers le Compositeur.
Inclure le fournisseur de service au sein de app/config/app.php.
Ajouter une façade alias de ce même fichier en bas:
Tirez le code HTML dans la vue:
Il y a un bouton de fermeture sur la droite du message. Cela repose sur jQuery donc, assurez-vous que est ajouté avant de votre fichier d'amorçage.
en option modifications:
Si vous n'êtes pas à l'aide de bootstrap ou veut ignorer le include du message flash et écrire le code vous-même:
Si vous souhaitez afficher le code HTML tirés par
@include('flash::message')
, vous pouvez le trouver dansvendor/laracasts/flash/src/views/message.blade.php
.Si vous avez besoin de modifier les partiels faire:
Les deux paquet de vues seront maintenant situé dans le " app/views/packages/laracasts/flash/' annuaire.
Dans laravel de 5,8 vous pouvez effectuer les opérations suivantes:
et de la lame:
Je pose le même problème et cela a fonctionné.
Contrôleur
Vue
Pour laravel 5.6.*
Tout en essayant de certaines des réponses apportées dans Laravel 5.6.*, il est clair qu'il y a eu quelques améliorations que je vais poster ici pour rendre les choses plus faciles pour ceux qui ne pourraient pas trouver une solution avec le reste des réponses.
ÉTAPE 1:
Aller à votre Contrôleur de Fichier et Ajouter la avant de la classe:
L'ÉTAPE 2:
Ajouter cette où vous voulez retourner à la redirection.
L'ÉTAPE 3:
Accédez à votre lame de fichier et de modifier comme suit
Ensuite de tester et de me remercier plus tard.
Cela devrait fonctionner avec laravel 5.6.* et éventuellement 5.7.*
Pour Laravel 3
Juste un heads-up sur @giannis christofakis réponse; pour toute personne utilisant les Laravel 3 remplacer
avec:
Laravel 5.6.*
Contrôleur
Lame Modèle
Enyoj
Pour Laravel 5.5+
Contrôleur:
De la lame:
dans le contrôleur
Par exemple
de la lame de fichier
Le message va stocker dans la session n'est pas dans la variable.
Par exemple
J'ai eu ce message quand j'ai essayé de rediriger comme:
Lorsque le droit chemin est:
Laravel 5.8
Contrôleur
Lame