Php 如何删除Laravel 5中的会话

Php 如何删除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

我试图删除一个基本会话,但它没有删除。这是密码

欢迎使用.blade.php

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>