I want to show a success message once the email is sent after redirected to same page. Here is my code :
return redirect('currentshowreport?showid='.$show_id)->with('success','Email sent successfully');
I am getting redirected to the specified page but the success message is not getting displayed. How to achieve this?
Try this:
#if (session('success'))
<div class="alert alert-success">
{{ session('success') }}
</div>
#endif
Related
My flash messages are not displaying on the view. I have tried post SO questions but didn't worked.
Here is my controller code:
use Session;
//other code
//my code to set flash message and redirect it
\Session::flash('message', $message);
return redirect('admin/groups/add');
My View code:
#if(Session::has('message'))
<div class="alert alert-danger" id="alert_danger">
{!!Session::get('message')!!}
</div>
#endif
I don't know where I am going wrong.
In your controller, add
return Redirect::back()->withErrors('Password is incorrect.');
In view, add
#if($errors->first())
<p class="alert alert-danger">{{$errors->first()}}</p>
#endif
in your controller :
use Session;
public function myfunction(){
return redirect('admin/groups/add')->with('message', $message);
}
in your blade view :
#if(session()->has('message'))
<div class="alert alert-danger" id="alert_danger">
{{{{session('message')}}}}
</div>
#endif
I tried following code: if the user's info to login is not correct redirect the user to the loin page again with the a message:
if (!$info_is_correct){
$_SESSION['err_msg'] = 'your login info is not correct';
return redirect('http://localhost:8000/user/login');
}
this is what I do in the login page(view) to echo the error msg:
#isset($_SESSION['err_msg'])
<div class="alert alert-danger mt-2" style="font-family:IRANSans;font-size:16px ;">
<p>
<strong>خطا !</strong>
{{$_SESSION['err_msg']}}
<?php unset($_SESSION['err_msg']) ?>
</p>
</div>
#endisset
where is the problem? and What is the best way to send data to view with redirecting?
Use the with() method:
return redirect('http://localhost:8000/user/login')->with('err_msg', 'your login info is not correct');
And if a view:
#if (session('err_msg'))
<div>{{ session('err_msg') }}</div>
#endif
You can do like this to send your error messages with use inputs
return redirect('http://localhost:8000/user/login')->with('err_msg', 'Your error message')->withInput();
Source : Laravel Redirects, Laravel Validate
Note : You can also work with Error Messages like this
Since you are using laravel the validations can be done by making use of validators and simply return
redirect()->back()->withErrors($validator)
and from the view you can have access to an $errors variable which will hold all the errors,
and you can loop through errors variable and print out the errors
from your login view
#if ($errors->any())
<div class="alert alert-danger">
<ul>
#foreach ($errors->all() as $error)
<li>{{ $error }}</li>
#endforeach
</ul>
</div>
#endif
Set session value in laravel with session method, be sure to use because it is global and set session value for whole site.
Also remove http://localhost:8000 to work this route in both development and production.
if (!$info_is_correct){
session('err_msg', 'your login info is not correct');
return redirect('/user/login');
}
And get value form session as session('key')
{{session('err_msg')}}
I have used redirect
return Redirect::to('/lk/payment_status')->with('message', 'Платеж успешно завершен’);
How display message variable message on /lk/payment_status page?
it seems you want to show some flash message after redirecting from page
if (Session::has('message')) {
$value = Session::get('message');
}
now you can use $value and show it inside your page.
you can use this to get session flash message or even you can use Flash api
Flash::sucess('some message');
// now do redirection
inside your page you can use flash tag
{% flash %}
<div class="alert alert-{{ type }}">
{{ message }}
</div>
{% endflash %}
If the payment_status page is a blade template (payment_status.blade.php) then you can easily output it using the {{ }} marking, like this -
{{ message }}
Please try
#if(session('message'))
{{session('message')}}
#endif
I have a route post called "postContact" and when the post is success I redirect to the same contact.blade.php where place the post:
<form action="{{ route('post_contact) }}"></form>
I want to see a msg if the post have success, but the Input::get('some data') not working to me.
this is my controller resume:
public function postContact($params) {
//if successful
$msg_params = array(
'msg_type' => 'success',
'msg_text' => 'my text to show',
);
return redirect()->back()->withInput($msg_params);
}
But in the contact.blade.php this not working:
#if(isset($msg_type))
<div class="alert">{{ $msg_text }}</div>
#endif
The variables not exits...
I don´t want use flash data here, because contact.blade is a module of another external app laravel and can't share sessions.
What is happening here?
Because doing a redirect, those variables are set in session. So you may try:
#if(Session::has('msg_type'))
<div class="alert">{{ Session::get('msg_text') }}</div>
#endif
If you don't want to use session variables, then you can use route parameters. You can get the parameters using the Request facade:
#if(Request::has('msg_type'))
<div class="alert">{{ Request::get('msg_text') }}</div>
#endif
If you're redirecting back to the page, Laravel will store the data in the Session. So you need to enter this to show the data:
#if(Session::has('msg_type'))
<div class="alert">
{{ Session::get('msg_text') }}
</div>
#endif
Hope this works!
Controller
return redirect()->back()->with('success', ['your message,here']);
Blade:
#if (\Session::has('success'))
<div class="alert alert-success">
<ul>
<li>{!! \Session::get('success') !!}</li>
</ul>
</div>
#endif
I'm trying to get a success message back to my home page on laravel.
return redirect()->back()->withSuccess('IT WORKS!');
For some reason the variable $success doesn't get any value after running this code.
The code I'm using to display the succes message:
#if (!empty($success))
<h1>{{$success}}</h1>
#endif
I have added the home and newsletter page to the web middleware group in routes.php like this:
Route::group(['middleware' => 'web'], function () {
Route::auth();
Route::get('/', function () {
return view('home');
});
Route::post('/newsletter/subscribe','NewsletterController#subscribe');
});
Does anyone have any idea why this doesn't seem to work?
You should remove web middleware from routes.php. Adding web middleware manually causes session and request related problems in Laravel 5.2.27 and higher.
If it didn't help (still, keep routes.php without web middleware), you can try little bit different approach:
return redirect()->back()->with('message', 'IT WORKS!');
Displaying message if it exists:
#if(session()->has('message'))
<div class="alert alert-success">
{{ session()->get('message') }}
</div>
#endif
you can use this :
return redirect()->back()->withSuccess('IT WORKS!');
and use this in your view :
#if(session('success'))
<h1>{{session('success')}}</h1>
#endif
Controller:
return redirect()->route('subscriptions.index')->withSuccess(['Success Message here!']);
Blade
#if (session()->has('success'))
<div class="alert alert-success">
#if(is_array(session('success')))
<ul>
#foreach (session('success') as $message)
<li>{{ $message }}</li>
#endforeach
</ul>
#else
{{ session('success') }}
#endif
</div>
#endif
You can always save this part as separate blade file and include it easily.
fore example:
<div class="row">
<div class="col-md-6">
#include('admin.system.success')
<div class="box box-widget">
You can simply use back() function to redirect no need to use redirect()->back() make sure you are using 5.2 or greater than 5.2 version.
You can replace your code to below code.
return back()->with('message', 'WORKS!');
In the view file replace below code.
#if(session()->has('message'))
<div class="alert alert-success">
{{ session()->get('message') }}
</div>
#endif
For more detail, you can read here
back() is just a helper function. It's doing the same thing as redirect()->back()
One way to do that is sending the message in the session like this:
Controller:
return redirect()->back()->with('success', 'IT WORKS!');
View:
#if (session()->has('success'))
<h1>{{ session('success') }}</h1>
#endif
And other way to do that is just creating the session and put the text in the view directly:
Controller:
return redirect()->back()->with('success', true);
View:
#if (session()->has('success'))
<h1>IT WORKS!</h1>
#endif
You can check the full documentation here: Redirecting With Flashed Session Data
I hope it is very helpful, regards.
All of the above are correct, but try this straight one-liner:
{{session()->has('message') ? session()->get('message') : ''}}
In Controller
return redirect()->route('company')->with('update', 'Content has been updated successfully!');
In view
#if (session('update'))
<div class="alert alert-success alert-dismissable custom-success-box" style="margin: 15px;">
×
<strong> {{ session('update') }} </strong>
</div>
#endif
You can use laravel MessageBag to add our own messages to existing messages.
To use MessageBag you need to use:
use Illuminate\Support\MessageBag;
In the controller:
MessageBag $message_bag
$message_bag->add('message', trans('auth.confirmation-success'));
return redirect('login')->withSuccess($message_bag);
Hope it will help some one.
Adi
in Controller:
`return redirect()->route('car.index')->withSuccess('Bein ajoute')`;
In view
#if(Session::get('success'))
<div class="alert alert-success">
{{session::get('success')}}
</div>
#endif