【问题标题】:Only add a class to layout.blade.php when on the homepage仅在主页上时向 layout.blade.php 添加一个类
【发布时间】:2018-12-29 05:32:09
【问题描述】:

我是 Laravel 的新用户,来自 Craft cms。在我的主页上,我希望导航是透明的,并且在所有其他页面上都有黑色背景。

为此,我在主页标题中添加了一个名为 header-home 的类。我将这个类添加到我写的布局文件中的主页中:

<header {% if craft.request.lastSegment == "" %}class="header-home"   {% endif %}>

我知道我可以为主页创建一个不同的 layout.blade.php 文件,但是当我想根据用户所在的页面或 url 添加类或元素时,还会有其他实例。

提前致谢, 杰米

【问题讨论】:

    标签: php laravel laravel-5.2 laravel-blade


    【解决方案1】:

    您可以从控制器发送类:

    public function myAction
    {
        ...
        return view('home', ['layoutClass'=>'dark']);
    }
    
    <header class="{{ isset($layoutClass) ? $layoutClass:'') }} />
    

    或者你可以匹配视图中的路由:

    <header class="{{ (\Request::route()->getName() == 'myRoute') ? 'dark':'') }} />
    

    【讨论】:

      【解决方案2】:

      我发现对我来说最好的方法是在刀片中使用 if 语句并检查路线,以下是我的做法:

      @if (\Request::is('/'))  
          <img class="nav-logo" src="img/logo-light.svg">
      @else
          <img class="nav-logo" src="img/logo-dark.svg">
      @endif
      

      【讨论】:

        猜你喜欢
        • 2015-02-04
        • 2015-04-21
        • 2021-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-05
        • 2012-12-22
        • 1970-01-01
        相关资源
        最近更新 更多