检查刀片模板-Laravel中是否存在会话


Check if session exists inside blade template - Laravel

目前,我的一个普通php文件中有以下代码

<?php 
if (isset($_SESSION['qwick'])) {
    include "checkout-lin.php";
} else {
    include "checkout-nlin.php";
}
?>

我怎么能在拉拉威尔做同样的事。我在includes文件夹中创建了两个名为loggedinclude.blade.phpnotloggedinclude.blade的文件,现在我想将它们添加到页面checkstatus.blade.php

此外,我可以设置一个类似的会话

$vars = [
    "email" => $email,
    "password" => $password,
    "firstname" => $row['firstName'],
    "lastname" => $row['lastName'],
    "id" => $row['id']
];
session()->put('blog', $vars);

从上面的代码中,我创建了一个数组,然后将数组放在一个名为blog的会话中,从而设置一个称为博客的会话。现在我想能够检查是否已经设置了一个名为博客的会话。博客然后有可变的电子邮件等

FYI;

我的第一个问题是检查刀片中是否存在会话

我的第二个问题是检查控制器中是否存在命名会话

文档中只有用于检查session项目的代码

if ($request->session()->has('users')) {
    //
}
@if(session()->has('qwick'))
    @include('includes.loggedinclude')
@else 
    @include('notloggedinclude.loggedinclude')
@endif

有关刀片的文档可以在这里找到。会话文档可在此处找到。

您可以使用这种方式进行Laravel:在控制器或路线功能中:

$request->session()->flash('your_session', 'your message');

和在资源/视图/your_blade_file.blade.php 中

@if (session()->has('your_session'))
    anything ...
@endif

尝试下面的代码段。

@if(session->has('qwick')) 
 @include('includes.loggedinclude checkout-lin')
@else
  @include('checkout-nlin')
@endif

参考:

Blade@if 中的Laravel会话变量

http://laravel-recipes.com/recipes/90/including-a-blade-template-within-another-template

刀片模板中的If语句?

检查用户的更好方法是记录在控制器中。在视图部分检查用户登录可能会违反MVC规则。谢谢

如果你必须需要,你可以试试这个

@if(session->get('qwick'))
@include("includes.loggedinclude")
@else 
@include("notloggedinclude.loggedinclude")
@endif