当前位置:首页 > CMS教程 > 其它CMS > 列表

Laravel 5.4.36中session没有保存成功问题的解决

发布:smiling 来源: PHP粉丝网  添加日期:2021-09-03 14:05:45 浏览: 评论:0 

这篇文章主要给大家介绍了关于Laravel 5.4.36中session没有保存成功问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

session使用注意点

laravel是一款php框架了,在使用laravel时会碰到session使用问题,工作中使用的是session默认的文件缓存,在使用过发现  session()->put("key","values") 没有设置成功,最后翻源码发现是使用文件缓存时候需要使用save() 方法才能持久化到数据库中

源码:vendor/laravel/framework/src/Illuminate/Session/Store.php

  1. /** 
  2.   * Save the session data to storage. 
  3.   * 
  4.   * @return bool 
  5.   */ 
  6.  public function save() 
  7.  { 
  8.   $this->ageFlashData(); 
  9.  
  10.   $this->handler->write($this->getId(), $this->prepareForStorage( 
  11.    serialize($this->attributes) 
  12.   )); 
  13.   $this->started = false; 
  14.  } 

由于使用文件缓存 因此write方法调用的源码:vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php

  1. /** 
  2.   * {@inheritdoc} 
  3.   */ 
  4.  public function write($sessionId$data
  5.  { 
  6.   $this->files->put($this->path.'/'.$sessionId$data, true); 
  7.  
  8.   return true; 
  9.  }

Tags: Laravel5 4 36 session

分享到: