owsxo

116 经验值

@sodasix
大神,谢谢你。
按你的方法又行了。我以前也是用类似的方法的,但不知怎么的突然间就不行了,所以才换了官方文档的方法。
看来我的Laravel修炼之路任重而道远。

@JellyBool
大神,我仔细检查了一下.env文件,发现确实是我把session的驱动改为database了。
但新的问题又出现了。报了一个token不匹配的错。

相关程序是这样的。

我已经加了token标签,可仍然报错。求解析!!

晕,我以为把路由移到外面就好了,谁知道只是把错误给掩盖了而已。
于是我把程序改回原来的样子,还是报了原来的错。
下面是我session的配置文件的部分内容

QueryException in Connection.php line 669: 

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'bo.sessions' doesn't exist (SQL: select * from `sessions` where `id` = b22bdb241dfe24fed67525a4faaa6f3ad1fcaef6 limit 1)

我的config中的session.php使用的是默认配置(即文件存放session),没改过。怎么会报这一个错呢?

该页面的路由是这样的

Route::group(['middleware' => ['web']], function () {
	Route::post('/login','MemberController@CheckLogin');
});

控制器中用到的session的语句如下

 $request->session()->put('member', $member);

注:(不知道有没有关系,还是写出来吧)我还写了一个关于登陆的中间件

namespace App\Http\Middleware;

use Closure;

class CheckLogin
{
  
    public function handle($request, Closure $next)
    {
        if( $request->session()->get('member') == '') {
          return redirect('/login');
        }

        return $next($request);
    }

}

也在kernel中注册了。但是我只是测试登陆页面的session是否管用,根本没测试这一个组件啊。

求大神解析。