【问题标题】:blade.php method outputting it's result to the formBlade.php 方法将其结果输出到表单
【发布时间】:2015-07-01 20:41:46
【问题描述】:

我目前正在使用 Laravel 4.2 框架和 twitter 引导程序设计一个网站。我已经设置了我的master.blade.php 文件,该文件在每个页面的顶部显示了一个导航栏。

基本上,如果用户已登录,我想显示一个具有不同选项的导航栏,而不是用户未登录时。因此,当用户登录时,我设置了 $_SESSION 变量。

但是,当我在我的 master.blade.php 文件中使用 {{session_start();}} 时,1 会输出到我的网站。如何解决这个问题?

![<html>
<head>
    <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0">
    <link href="{{asset('resources/css/bootstrap.css')}}" rel="stylesheet">
    <link href="{{asset('resources/css/master.css')}}" rel="stylesheet">][1]


@section('head')

    @show
</head>
<body>

{{session_start();}}

@if(!isset($_SESSION['email']))
<div class="navbar navbar-inverse navbar-static-top">
    <div class="container">
        <div class="navbar-brand">Jordanstown Dive Club</div>
        <button class="navbar-toggle" data-toggle="collapse" data-target=".navHeaderCollapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>
        <div class="collapse navbar-collapse navHeaderCollapse">

            <ul class="nav navbar-nav navbar-right">
                <li class="active"><a href="home">Home</a></li>
                <li><a href="login">Log In</a></li>
                <li><a href="signup">Sign Up</a></li>
                <li><a href="gallery">Gallery</a></li>
                <li><a href="contactus">Contact Us</a></li>

            </ul>

        </div>
    </div>
</div>


    @elseif(isset($_SESSION['email']))

<div class="navbar navbar-inverse navbar-static-top">
    <div class="container">
        <div class="navbar-brand">Jordanstown Dive Club</div>
        <button class="navbar-toggle" data-toggle="collapse" data-target=".navHeaderCollapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>
        <div class="collapse navbar-collapse navHeaderCollapse">

            <ul class="nav navbar-nav navbar-right">
                <li class="active"><a href="home">Home</a></li>
                <li><a href="logout">Log Out</a></li>
                <li><a href="BookaDive">Book a Dive</a></li>
                <li><a href="DiveLog">Dive Log</a></li>
                <li><a href="gallery">Gallery</a></li>
                <li><a href="contactus">Contact Us</a></li>

            </ul>

        </div>
    </div>
</div>

@endif

【问题讨论】:

  • 您是否尝试过抓取会话变量而不这样做?我相信 Laravel 应该已经为你做好了这一切。您还应该使用 Session 门面... @if(!isset($_SESSION['email'])) 变为 @if(!Session::has('email'))
  • 谢谢!那是一种享受。我没有意识到 laravel 内置了这个功能! @user3158900

标签: php laravel web blade


【解决方案1】:

{{ function() }} 将被翻译成 PHP 回显,执行函数并打印返回值。

在 Laravel 中你不需要使用 session_start() 因为 Laravel 有内置的会话管理机制。

如果你想要不同的菜单选项,那么你可以检查用户是否登录并使用@if

@if(Auth::check())
  link to Logout
@else
  link to login
@endif

【讨论】:

  • 感谢马库斯的回复!还在适应框架,所以我还不知道所有的内置函数。
  • 太棒了!如果你得到它的工作,那么你可以接受关闭问题的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-15
  • 1970-01-01
  • 2014-06-27
  • 2016-03-11
  • 1970-01-01
  • 2020-09-28
  • 1970-01-01
相关资源
最近更新 更多