in Uncategorised

A helper function for handling Laravel 5 session success or error messages

Here is a small snippet of code, which can be dropped into a helper.php file.

function message_alert($timeout = 0) {

    $return = '';

    //If has errors
    if( !empty(Session::get('errors')) ){

        $return .= '<div class="fixed-bottom alert alert-danger mb-0"><div class="container">
            <ul class="mb-0">';
                foreach ( Session::get('errors')->all() as $error ):
                    $return .= '<li>'. $error .'</li>';
            $return .= '</ul>

    } elseif( !empty(Session::get('message')) ) { //If not errors

        //Split the Bootstrap alert class with message
        list($type, $message) = explode('|', Session::get('message'));
        $return .= sprintf('<div class="fixed-bottom alert alert-%s mb-0"><div class="container">%s</div></div>', $type, $message);


    //If timeout is set, the alert should disappear
    if( !empty($return) && $timeout > 0 ){
        $return .= '<script>

    return $return;


Very often I’ll use a flash session message or input validation which will output error messages where applicable. By simply using {!! message_alert() !!} I can output either with ease. This was added to my app.blade.php file and therefore captures all success or error messages.

In a recent Laravel build I extended my original function to accept a variable for handling timeout, for example, {!! message_alert(5000) !!}. This populates the jQuery code to hide the message after a period of time.

Using Bootstrap 4, I was able to use the standard alerts classes and fix the alert to the bottom of the screen.

return Redirect::back()->with('message', 'info|Successfully updated user');

The above example shows how you can use a pipe to split the type of alert with the message returned.

Write a Comment