当前位置: 首页 > 知识库问答 >
问题:

超文本标记语言部分未定义laravel@产量

欧旻
2023-03-14

布局/模板文件在footer.blade.php中定义:

@extends('mainpage')

@section('footer')

<section class="section5">
    <footer class="container col-lg-12 pb-2 pt-4">
        <ul class="nav justify-content-center border-bottom pb-3 mb-3">
            <li class="nav-item"><a href="#" class="nav-link px-2">Home</a></li>
            <li class="nav-item"><a href="#" class="nav-link px-2">Features</a></li>
            <li class="nav-item"><a href="#" class="nav-link px-2">Pricing</a></li>
            <li class="nav-item"><a href="#" class="nav-link px-2">FAQs</a></li>
            <li class="nav-item"><a href="#" class="nav-link px-2">About</a></li>
        </ul>

        <div class="row">
            <p class="small-text col-lg-3 text-lg-start text-center">© MyCompany.com @php echo date("Y") @endphp </p>
            <p class="small-text col-lg-6 text-lg-center text-center">All trademarks used on this site are the property of their respective owners.</p>
            <p class="small-text col-lg-3 text-lg-end text-center">Terms & Conditions | Privacy Policy</p>
        </div>
    </footer>
</section>

@endsection

然后在mainpage.blade.php中产生:

    <!-- REST OF HTML -->
    @yield('footer', 'Undefined')
</body>

两个文件都存在于同一个目录中,并且web.php中定义了/main page的路由:

Route::get('/', function () {
    return View::make('mainpage')->render();
});

然而,导航到/mainpage时唯一显示的是未定义的“error”,我将它作为@yield帮助程序的第二个参数传递给它。在浏览器中检查显示未加载该节。

由于模板继承在没有错误的情况下悄无声息地失败,而且因为Laravel显然甚至没有打印警告的直观方式,这样一个基本的用例对我来说似乎不可能调试。

这里发生了什么,或者,我将如何开始调试它?

共有1个答案

谭曦
2023-03-14

要使当前视图工作,您的路由需要调用页脚而不是主页面

footer.blade.php知道它扩展了什么视图。

<!-- footer.blade.php -->
@extends('mainpage')   <!-- Ok, extend mainpage.blade.php -->

@section('footer')  <!-- place this section where there's a @yield('footer') in mainpage.blade.php -->
@endsection

mainpage.blade.php不知道哪些视图将扩展它。

<!-- mainpage.blade.php -->
@yield('footer', 'Undefined') <!-- Place 'Undefined' if the views that extend me don't have a @section('footer') -->

我可以创建第二个视图,名为footer2.blade.php,还可以扩展mainpage。在这种情况下,应该呈现哪个视图?

对于页脚之类的常规部分,您需要包含一个子视图(使用@include)。

下面是一个粗略的例子:

<!-- layout-1.blade.php. This layout has a navbar, sidebar and footer. -->
<html>
<head>
</head>
<body>
    <!-- layout-1 navbar -->
    @include('navbar') 
    <!-- layout-1 sidebar -->
    @include('sidebar')
    <main>
        @yield('content')
    </main>
    <!-- layout-1 footer -->
    @include('footer')
</body>
</html>
<!-- layout-2.blade.php. This layout has a navbar and a footer but no sidebar -->
<html>
<head>
</head>
<body>
    <!-- layout-2 navbar -->
    @include('navbar')
    <main>
        @yield('content')
    </main>
    <!-- layout-2 footer -->
    @include('footer')
</body>
</html>
@extends('layout-1')

@section('content')
@endsection
@extends('layout-2')

@section('content')
@endsection
 类似资料:
  • 导出为HTML会生成以下内容: 报告在页面上居中,但应左对齐。 使用JRHtmlExporter的HTML\u HEADER参数看起来很有希望,但这些类已被弃用。这就是解决方案: 现在我必须使用网络。旧金山。jasperreports。出口HtmlExporter和net。旧金山。jasperreports。出口SimpleHtmlReportConfiguration类,如下所示: 您将如何修复

  • 我正在Laravel中构建一个小型CMS,我试图显示内容(存储在数据库中)。它显示超文本标记语言标记,而不是执行它们。就像所有打印数据都有自动html_entity_decode。 我试着用大括号打印内容。 和三个卷曲的大括号。 它们给出了相同的结果。我需要执行那些HTML标记,而不是转义它们。

  • 定义和使用自定义标记可以吗?(这不会与将来的html标记冲突)-通过更改outerHTML替换/呈现这些标记?? 我在下面创建了一个演示,看起来效果不错 问题的最新情况: 让我进一步解释一下。请假设浏览器上启用了JavaScript-也就是说,应用程序不应该在没有javascript的情况下运行。 我见过使用自定义属性在指定标记中定义自定义行为的库。例如,角度。js大量使用自定义属性。(它还有关于

  • 我试图在HTML的pre标签中包装文本,但它不起作用。我使用下面的CSS作为我的标签。 我从如何在pre标记中换行文本? 我已添加

  • 我正在尝试使用放心来检查服务器返回的HTML文档的一些属性。演示该问题的SSCCE如下所示: 现在,此尝试以,这是由所有可能的错误大约 30 秒左右后超时! 如果我用< code>xmlPathConfig()删除这一行。用()。功能(...)当特性“http://Apache . org/XML/features/disallow-DOCTYPE-decl”设置为true时,由于< code>D

  • 我正在工作的工具提示和从后端我将获得数据与html标记。我需要在工具提示中显示相应的标签中的相应数据。例如,我将从后端获得Hello用户单击此处。我必须显示为你好用户在h1格式,点击这里应该是一个锚。我尝试了这两个功能,并取代其不工作。 具有以下功能: 替换: https://codesandbox.io/s/serene-fast-u8fie?file=/App.svelte