J'essaie de faire passer un message de réussite sur ma page d'accueil sur Laravel.
return redirect()->back()->withSuccess('IT WORKS!');
Pour une raison quelconque, la variable $ success n'obtient aucune valeur après l'exécution de ce code.
Le code que j'utilise pour afficher le message de réussite:
@if (!empty($success))
<h1>{{$success}}</h1>
@endif
J'ai ajouté la page d'accueil et la page de newsletter au groupe de middleware Web dans routes.php comme ceci:
Route::group(['middleware' => 'web'], function () {
Route::auth();
Route::get('/', function () {
return view('home');
});
Route::post('/newsletter/subscribe','NewsletterController@subscribe');
});
Quelqu'un at-il une idée pourquoi cela ne semble pas fonctionner?
Vous devez supprimer le middleware web
de routes.php
. L'ajout du middleware web
provoque manuellement des problèmes liés à session et à la requête dans Laravel 5.2.27 et versions ultérieures .
Si cela n'a pas aidé (toujours, conservez routes.php
sans le middleware Web), vous pouvez essayer une approche légèrement différente:
return redirect()->back()->with('message', 'IT WORKS!');
Afficher un message s'il existe:
@if(session()->has('message'))
<div class="alert alert-success">
{{ session()->get('message') }}
</div>
@endif
vous pouvez utiliser ceci:
return redirect()->back()->withSuccess('IT WORKS!');
et utilisez ceci à votre avis:
@if(session('success'))
<h1>{{session('success')}}</h1>
@endif
Une façon de faire est d’envoyer le message dans la session comme ceci:
Manette:
return redirect()->back()->with('success', 'IT WORKS!');
Vue:
@if (session()->has('success'))
<h1>{{ session('success') }}</h1>
@endif
Et une autre façon de faire est de créer la session et de placer le texte directement dans la vue:
Manette:
return redirect()->back()->with('success', true);
Vue:
@if (session()->has('success'))
<h1>IT WORKS!</h1>
@endif
Vous pouvez consulter la documentation complète ici: Redirection avec des données de session flashées
J'espère que c'est très utile.
Dans le contrôleur
return redirect()->route('company')->with('update', 'Content has been updated successfully!');
En vue
@if (session('update'))
<div class="alert alert-success alert-dismissable custom-success-box" style="margin: 15px;">
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
<strong> {{ session('update') }} </strong>
</div>
@endif