检查 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()->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 但不检查帐户是不是已确认