繁体   English   中英

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

[英]Check if session exists inside blade template - Laravel

目前我的一个 vanilla php文件中有以下代码

<?php 

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

?>

我怎样才能在 laravel 中做同样的事情。 我在名为loggedinclude.blade.phpnotloggedinclude.bladeincludes文件夹中创建了 2 个文件,现在我想将它们添加到页面checkstatus.blade.php

我也可以像这样设置会话

$vars = [
    "email" => $email,
    "password" => $password,
    "firstname" => $row['firstName'],
    "lastname" => $row['lastName'],
    "id" => $row['id']
];

session()->put('blog', $vars);

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

供参考;

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

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

文档只有检查session项的代码

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

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

你可以在 Laravel 中使用这种方式:在你的 Controller 或 Route 函数中:

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

在 Resource/Views/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

如果刀片模板中的语句?

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM