Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

DanielGG's avatar

RuntimeException Session store not set on request.

Hi,

I was watching episode 19 from the Laravel 5.4 From Scratch series, when I got this error at around 15 minutes. I tried to undo most of the changes I made, but the error still persists. I've been stuck on this for a while now, and I would be really thankfull if someone could help me.

Error report:

"Session store not set on request."

In vendor\laravel\framework\src\Illuminate\Http\Request.php

Code:

    public function session()
    {
        if (! $this->hasSession()) {
            throw new RuntimeException('Session store not set on request.');
        }
 
        return $this->getSession();
    }

Application frames (1)

in Illuminate\Foundation\Http\Kernel handle

code:

$response = $kernel->handle(
    $request = Illuminate\Http\Request::capture()
);

Here are some of my files. I didn't include most of the files I didn't work on for a while. Please ask for more files if needed.

web.php

<?php
Route::get('/posts/create','PostsController@create');
Route::get('/posts','PostsController@index')->name('home');
Route::post('/posts','PostsController@store');
Route::get('/posts/{post}','PostsController@show');
Route::post('/posts/{post}','CommentController@store');

//Route::get('/tasks','TasksController@index');
//Route::get('/tasks/{task}','TasksController@show');

Route::get('/register','RegistrationController@create');

Route::post('/register','RegistrationController@store');

Route::get('/login','SessionsController@create')->name('login');
Route::get('/logout','SessionsController@destroy');

PostsController:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Post;

class PostsController extends Controller
{

    public function __construct(){

        $this->middleware('auth')->except(['index','show']);
    }

    public function index()
    {

        $posts = Post::latest()->get();


    return view('posts.index',compact('posts'));

    }

    public function show(Post $post)
    {

    return view('posts.show',compact('post'));

    }

    public function create()
    {
        return view('posts.create');
    }

    public function store()
    {

        $this->validate(request(),[
            'title'=> 'required',
            'body' => 'required'

        ]);

        Post::create(request(['title',auth()->user()->id]));



       return redirect()->home();
    }


}

CommentController

<?php

namespace App\Http\Controllers;

use App\Post;
use App\Comment;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Redirect;


class CommentController extends Controller
{
    public function store(Post $post)
    {
        $this->validate(request(),['body'=>'required|min:2|max80']);
        $post->addComment(request('body'));

        return Redirect::back();
    }
}

RegistrationController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\user;


class RegistrationController extends Controller
{

    public function create()
    {
        return view('registrations.create');
    }

    public function store()
    {

        $this->validate(request(),[
            'name'=>'required',
            'email'=>'required|email',
            'password'=>'required|confirmed'
        ]);

        $user = User::create(request(['name','email','password']));

        auth()->login($user);

        return redirect()->home();

    }

}

SessionsController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class SessionsController extends Controller
{

    public function create()
    {
        return view('sessions.create');
    }


    public function destroy()
    {
        auth()->logout();

        return redirect()->home();
    }
}

0 likes
2 replies
Snapey's avatar

What route are you hitting when you get the error?

DanielGG's avatar

Almost every route, except when the url doesn't contain any trailing slashes. Then I will get a different error:

Type error:

Too few arguments to function Illuminate\Support\Manager::createDriver(), 0 passed in vendor\laravel\framework\src\Illuminate\Support\Manager.php on line 88 and exactly 1 expected

    protected function createDriver($driver)
    {
        // We'll check to see if a creator method exists for the given driver. If not we
        // will check for a custom driver creator, which allows developers to create
        // drivers using their own customized driver creator Closure to create it.
        if (isset($this->customCreators[$driver])) {
            return $this->callCustomCreator($driver);
        } else {
            $method = 'create'.Str::studly($driver).'Driver';
 
            if (method_exists($this, $method)) {
                return $this->$method();
            }
        }
        throw new InvalidArgumentException("Driver [$driver] not supported.");
    }

So yeah, I basically can't view a single page

Please or to participate in this conversation.