【问题标题】:use a standalone app.blade for a page set in laravel对 laravel 中的页面集使用独立的 app.blade
【发布时间】:2019-11-07 18:13:39
【问题描述】:

我在应用程序中设置了 9 个页面限制访问(需要登录)。这些页面不能使用默认的app.blade.php,因为它们的面板与默认面板不同。我在页面所在的位置创建了一个布局文件夹,但 laravel 使用了两个 app.blade.php 而不仅仅是我需要的那个,它最终损坏了这些页面的面板,因为它们都使用相同的 css。

我只需要使用该文件夹中的app.blade.php

我试图像这样隐藏另一个面板:.not-as-home {display: none;} 但仍然破坏了另一个面板,因为另一个 app.blade.php 仍在加载

app.blade.php 两个文件的内容相同,区别在于加载面板 html 的 auth.blade.phpsidebar.blade.php 视图的内容,一个加载顶部菜单,另一个加载侧边栏。

索引:@extends('company.clients.layouts.app')

app.blade.php (2)

<html>
    <head>
        <meta charset="utf-8">
        <meta name="csrf-token" content="{{ csrf_token() }}">
        @stack('seo') 
        @stack('styles')
    </head>
    <body>
        @auth()
            <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
                @csrf
            </form>
            @include('company.clients.layouts.navbars.sidebar')
        @endauth

        <div class ="main-content">
            @include('company.clients.layouts.navbars.navbar')
            @yield('content')
        </div>

        @guest()
            @include('company.clients.layouts.footers.guest')
        @endguest

        @stack('js')
    </body>
</html>

就是这样,代码胜过千言万语,我需要显示company.clients.layouts.navbar.auth.blade.php 的内容,而不是像它那样显示layouts.navbar.auth.blade.php

【问题讨论】:

  • 我不明白你在问什么,你能添加其他文件吗?
  • 文件很大,只是html,不影响任何东西,简单的问题是文件夹A和文件夹B,文件夹B需要自己的app.blade.php,但是当尝试使用文件夹 B 中的 app.blade,laravel 还从文件夹 A 加载 app.blade.php,破坏了代码,我该如何解决?
  • 将文件夹 A 理解为 app.blade.php 存在于视图/布局中,文件夹 B 理解为 app.blade.php 存在于视图/公司/客户/布局中

标签: php html laravel laravel-blade


【解决方案1】:

创建具有不同类型用户的系统的解决方案是创建 2 个单独的文件夹,每个文件夹都有其 app.blade.php,另一种选择是在页面视图中包含 sidbar 和 navbar。

你可以这样做:

app.blade.php

<!doctype html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- CSRF Token -->
    <meta name="csrf-token" content="{{ csrf_token() }}">
</head>
<body>
    <div id="app">
            @yield('nav')
            @yield('content')
            @yield('footer')
    </div>
</body>
</html>

【讨论】:

    猜你喜欢
    • 2014-01-09
    • 2015-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 2017-12-11
    • 2018-03-05
    相关资源
    最近更新 更多