检查 Laravel 5.1 中是不是存在会话密钥?

Posted

技术标签:

【中文标题】检查 Laravel 5.1 中是不是存在会话密钥?【英文标题】:Check if session key exists in Laravel 5.1?检查 Laravel 5.1 中是否存在会话密钥? 【发布时间】:2015-09-15 15:55:07 【问题描述】:

我正在尝试检查是否已在控制器中设置会话密钥。文档指出,可以检查一个项目是否存在于数组中,仅此而已。

http://laravel.com/docs/5.1/session

【问题讨论】:

你不能只做if (Session::has('your_key')) 吗? 【参考方案1】:

你可以使用

if($request->session()->has('key'))


【讨论】:

代码不够用。请解释一下。 在 laravel 5 中或其上层语法已更改,这就是为什么您将编写这样的代码来检查会话是否存在。阅读 laravel 5.2 的会话文档。它使您的概念清晰。【参考方案2】:

@DavidDomain 指出可能最好的方法是使用

if(Session::has('...'))

对我来说就像一个魅力。

【讨论】:

【参考方案3】:

你可以在刀片和控制器中使用Session::has('YOUR_SESSION_KEY')

控制器前:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Session;

class add_classController extends Controller

  public function index()
    if (Session::has('YOUR_SESSION_KEY'))
      // do some thing if the key is exist
    else
      //the key does not exist in the session
    

  

刀片前:

@if (Session::has('YOUR_SESSION_KEY'))
-- do something with session key --
@else
-- session key dosen't exist  --
@endif

【讨论】:

【参考方案4】:

你可以这样做

if(Session::has('your_key'))
        return $next($request);
    

【讨论】:

【参考方案5】:
if($request->session()->exists('your_key')
// 

【讨论】:

虽然这段代码 sn-p 可以回答这个问题,包括解释它为什么以及如何帮助解决问题,但可以提高您的答案的质量和寿命。见How do I write a good answer?【参考方案6】:

或者更短,不使用会话外观:if(session()-&gt;exists('key_here'))

【讨论】:

【参考方案7】:
@if ( session::has('message') 

 session::get('message') 
@endif

@if (session->has->('message'))

session->

@endif

【讨论】:

欢迎来到 SO!由于已经给出了这个确切的答案并且问题已有 6 年历史,因此重复的答案并没有多大贡献。也许您可以看看没有答案的新问题来提供帮助?【参考方案8】:

这对我有用

@if (session()->has('hasCoupon'))
    [ Session::get('hasCoupon')['name'] ]</span>
@endif

【讨论】:

以上是关于检查 Laravel 5.1 中是不是存在会话密钥?的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu 14.04 上的 Laravel 5.1 会话问题

Laravel Javascript - 检查会话中是否存在主题,添加类

Laravel 5.1 - 注册用户时应用重定向到 /dashboard 但不检查帐户是不是已确认

当所有检索值在laravel中具有相同的会话键时,如何检查会话数组是不是具有唯一的ID

在 laravel 5.1 中打印所有正在运行的会话变量

使用 Session ID 检查会话是不是处于活动状态 - Laravel