删除会话数据
forget()方法用于从会话中删除项目。该方法将采取“key”作为论点。
$request->session()->forget('key');
使用flush()方法而不是forget()方法删除所有会话数据。使用pull()方法从会话中检索数据并随后将其删除。pull() 方法也将采用key作为论点。之间的区别forget()和pull()方法是forget()方法不会返回会话的值并且pull()方法将返回它并从会话中删除该值。
例子
步骤 1− 创建一个名为SessionController通过执行以下命令。
php artisan make:controller SessionController --plain
步骤 2− 成功执行后,您将收到以下输出 −
步骤 3- 将以下代码复制到以下位置的文件中
app/Http/Controllers/SessionController.php.
app/Http/Controllers/SessionController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class SessionController extends Controller {
public function accessSessionData(Request $request) {
if($request->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− 访问以下 URLset data in session.
http://localhost:8000/session/set
步骤 6− 输出将如下图所示。
步骤 7− 访问以下 URLget data from session.
http://localhost:8000/session/get
步骤 8− 输出将如下图所示。
步骤 9− 访问以下 URLremove session data.
http://localhost:8000/session/remove
步骤 10− 您将看到如下图所示的消息。