Php 如何删除Laravel 5中的会话
我试图删除一个基本会话,但它没有删除。这是密码 欢迎使用.blade.phpPhp 如何删除Laravel 5中的会话,php,laravel-5,Php,Laravel 5,我试图删除一个基本会话,但它没有删除。这是密码 欢迎使用.blade.php Session::forget()不会返回true/false。您可以删除if语句 作为旁注,如果您仅在会话中使用user键来存储当前登录的用户,您可以使用Auth::user()。您可以尝试使用Session::pull('key') 如果要删除所有会话变量,可以使用Session::flush() 您应该使用此方法 Route::get('/logout', function() { Session::forg
Session::forget()
不会返回true/false。您可以删除if
语句
作为旁注,如果您仅在
会话中使用user
键来存储当前登录的用户,您可以使用Auth::user()
。您可以尝试使用Session::pull('key')代码>
如果要删除所有会话变量,可以使用Session::flush()代码>
您应该使用此方法
Route::get('/logout', function() {
Session::forget('key');
if(!Session::has('key'))
{
return "signout";
}
});
您可以使用包含当前会话的Request
参数。这样,您可以通过键删除任何会话值:
use Illuminate\Http\Request;
Route::get('/logout', function(Request $request) {
//Uncomment to see the logs record
//\Log::info("Session before: ".print_r($request->session()->all(), true));
if ($request->session()->has('key')) {
$request->session()->forget('key');
}
//Uncomment to see the logs record
//\Log::info("Session after: ".print_r($request->session()->all(), true));
return redirect('/');
});
或者,您可以删除会话中的所有值:
use Illuminate\Http\Request;
Route::get('/logout', function(Request $request) {
//Uncomment to see the logs record
//\Log::info("Session before: ".print_r($request->session()->all(), true));
$request->session()->flush();
//Uncomment to see the logs record
//\Log::info("Session after: ".print_r($request->session()->all(), true));
return redirect('/');
});
参考:名称空间应用程序\Http\Controllers;
使用\Http\Request;
使用App\Http\Controllers\Controller;
类StudentRecord扩展控制器
{
公共功能注销(请求$req)
{
如果($req-session()->具有('key')){
$req->session()->忘记('key');
返回重定向('/');
}
//还是简单
公共功能注销(请求$req)
{
//如果($req-session()->具有('key'))
$req->session()->flush();
}
}
//然后在路由文件中执行此操作
路由:获取(“/logout”,StudentRecord@logout);
你真的应该使用Laravel的内置身份验证:你能给我举个登录和注销的例子吗?首先阅读我链接的文档,然后在线搜索其他资源(教程、SO问题等)如果你还没有找到任何东西,请再问我一次。作为开发人员,最重要的技能之一是做研究,知道在哪里可以找到信息。特别是有了这些基本的问题,在网上可以很容易地找到一些东西。所有这些都在官方文档中有很好的记录:参数太少,无法运行illumb/Session/Store::forget(),第144行传入了0/home/vagrant/code/uscutter/vendor/laravel/framework/src/illumb/Support/Manager.php,正好是1个预期值
如何在特定时间间隔后自动执行此操作,在设置的时间间隔后删除特定会话密钥。而不是整个会话。
use Illuminate\Http\Request;
Route::get('/logout', function(Request $request) {
//Uncomment to see the logs record
//\Log::info("Session before: ".print_r($request->session()->all(), true));
if ($request->session()->has('key')) {
$request->session()->forget('key');
}
//Uncomment to see the logs record
//\Log::info("Session after: ".print_r($request->session()->all(), true));
return redirect('/');
});
use Illuminate\Http\Request;
Route::get('/logout', function(Request $request) {
//Uncomment to see the logs record
//\Log::info("Session before: ".print_r($request->session()->all(), true));
$request->session()->flush();
//Uncomment to see the logs record
//\Log::info("Session after: ".print_r($request->session()->all(), true));
return redirect('/');
});
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class StudentRecord extends Controller
{
public function logout(Request $req)
{
if($req-session()->has('key'){
$req->session()->forget('key');
return redirect('/');
}
//Or simple
public function logout(Request $req)
{
//if($req-session()->has('key')
$req->session()->flush();
}
}
//Then Do this in your route file
Route:get("/logout",StudentRecord@logout);
<a href=" {{ url(logout)}}">logout</a>