📜  Laravel-会话

📅  最后修改于: 2020-10-23 08:05:22             🧑  作者: Mango


会话用于存储整个请求中有关用户的信息。 Laravel提供了各种驱动程序,例如文件,cookie,apc,数组,Memcached,Redis数据库来处理会话数据。默认情况下,使用文件驱动程序,因为它是轻量级的。可以在config / session.php中存储的文件中配置会话。

访问会话数据

要访问会话数据,我们需要一个可以通过HTTP请求访问的会话实例。获取实例后,我们可以使用get()方法,该方法将使用一个参数“ key”来获取会话数据。

$value = $request->session()->get('key');

您可以使用all()方法代替get()方法来获取所有会话数据。

储存工作阶段资料

可以使用put()方法数据存储在会话中。 put()方法将使用两个参数,即“键”“值”

$request->session()->put('key', 'value');

删除会话数据

忘记()方法用于从会话中删除项目。该方法将“ key”作为参数。

$request->session()->forget('key');

使用flush()方法而不是got()方法来删除所有会话数据。使用pull()方法从会话中检索数据,然后将其删除。 pull()方法还将把key作为参数。忘记()方法pull()方法之间的区别是,忘记()方法将不返回会话的值,而pull()方法将返回它并从会话中删除该值。

步骤1-通过执行以下命令来创建一个名为SessionController的控制器。

php artisan make:controller SessionController --plain

步骤2-成功执行后,您将收到以下输出-

会话控制器

步骤3-将以下代码复制到文件中

app / Http / Controllers / SessionController.php。

app / Http / Controllers / SessionController.php

session()->has('my_name'))
         echo $request->session()->get('my_name');
      else
         echo 'No data in the session';
   }
   public function storeSessionData(Request $request) {
      $request->session()->put('my_name','Virat Gandhi');
      echo "Data has been added to session";
   }
   public function deleteSessionData(Request $request) {
      $request->session()->forget('my_name');
      echo "Data has been removed from session.";
   }
}

步骤4-app / Http / routes.php文件中添加以下行。

app / Http / routes.php

Route::get('session/get','SessionController@accessSessionData');
Route::get('session/set','SessionController@storeSessionData');
Route::get('session/remove','SessionController@deleteSessionData');

步骤5-访问以下URL以在会话中设置数据

http://localhost:8000/session/set

步骤6-输出将如下图所示。

会话中的数据

步骤7-访问以下URL以从session获取数据

http://localhost:8000/session/get

步骤8-输出将如下图所示。

维拉特·甘地

步骤9-访问以下URL以删除会话数据

http://localhost:8000/session/remove

步骤10-您将看到如下图所示的消息。

届会