In Laravel, the best way to pass different types of flash messages in the session

laravel, laravel-4, session

Solution

One solution would be to flash two variables into the session:

- The message itself

- The "class" of your alert

for example:

Session::flash('message', 'This is a message!'); 
Session::flash('alert-class', 'alert-danger'); 

Then in your view:

@if(Session::has('message'))
<p class="alert {{ Session::get('alert-class', 'alert-info') }}">{{ Session::get('message') }}</p>
@endif

Note I've put a default value into the `Session::get()`. that way you only need to override it if the warning should be something other than the `alert-info` class.

(that is a quick example, and untested :) )

Problem

I'm making my first app in Laravel and am trying to get my head around the session flash messages. As far as I'm aware in my controller action I can set a flash message either by going ``` Redirect::to('users/login')->with('message', 'Thanks for registering!'); //is this actually OK? ``` For the case of redirecting to another route, or ``` Session::flash('message', 'This is a message!'); ``` In my master blade template I'd then have: ``` @if(Session::has('message')) <p class="alert alert-info">{{ Session::get('message') }}</p> @endif ``` As you may have noticed I'm using Bootstrap 3 in my app and would like to make use of the different message classes: `alert-info`, `alert-warning`, `alert-danger` etc. Assuming that in my controller I know what type of message I'm setting, what's the best way to pass and display it in the view? Should I set a separate message in the session for each type (e.g. `Session::flash('message_danger', 'This is a nasty message! Something's wrong.');`)? Then I'd need a separate if statement for each message in my blade template. Any advice appreciated.

Original source

Related problems