Error in Laravel “Class ‘Session’ not found”

Posted by

<!-- alert.blade.php -->
@if ($errors->any())
    <div>
        <ul>
        @foreach ($errors->all() as $error)
            <li style="color: red">{{ $error }}</li>
        @endforeach
        </ul>
    </div>
@endif

@if (Session::has('error'))
    <div>
        <ul>
            <li style="color: red">{{ Session::get('error') }}</li>
        </ul>
    </div>
@endif

@if (Session::has('success'))
    <div>
        <ul>
            <li style="color: green">{{ Session::get('success') }}</li>
        </ul>
    </div>
@endif

The above code attempts to display error and success messages stored in session variables using the Session facade. However, the error occurs due to the Session class not being found.

Solution: To resolve the “Class ‘Session’ not found” error, we need to ensure that the Session class is properly accessed within the view. Here’s how we can fix it:

Solution 1: Using Laravel’s session helper function:

@if (session()->has('error'))
    <div>
        <ul>
            <li style="color: red">{{ session()->get('error') }}</li>
        </ul>
    </div>
@endif

@if (session()->has('success'))
    <div>
        <ul>
            <li style="color: green">{{ session()->get('success') }}</li>
        </ul>
    </div>
@endif

Solution 2: Using Fully Qualified Class Names:

@if (\Illuminate\Support\Facades\Session::has('error'))
    <div>
        <ul>
            <li style="color: red">{{ \Illuminate\Support\Facades\Session::get('error') }}</li>
        </ul>
    </div>
@endif

@if (\Illuminate\Support\Facades\Session::has('success'))
    <div>
        <ul>
            <li style="color: green">{{ \Illuminate\Support\Facades\Session::get('success') }}</li>
        </ul>
    </div>
@endif
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x