Laravel - 使用 yields / extends

Laravel - Using of yields / extends

我的 bootstrap 导航栏有一个@include 问题。今天早上搞定了,真不知道问题出在哪里。

这是错误消息:

未找到视图 [layouts.navbar]。

我要包含navbar.blade.php

的内容
<!DOCTYPE html>
<html>
<head>
<title>Mana Tournaments</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no"/>
{!! Html::style('css/style.css') !!}
{!! Html::style ('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css')  !!}
{!! Html::style ('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css') !!}
</head>
<body>
<div class="container">
<nav class="navbar navbar-default navbar-fixed-top">
    <div class="container-fluid">
        <div class="navbar-header">
            <a class="navbar-brand" href="#">Logo</a>
        </div>
        <ul class="nav navbar-nav">
            <li class="active"><a href="welcome">Accueil</a></li>
            <li><a href="#">Tournois</a></li>
            <li><a href="#">Inscription</a></li>
            <li><a href="#">Contact</a></li>
        </ul>
    </div>
</nav>
</div>
</body>
</html>

到我的索引页(welcome.blade.php)

<!DOCTYPE html>
<html>
    <head>
    <title>Mana Tournaments</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=no"/>
    {!! Html::style('css/style.css') !!}
    {!! Html::style ('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css')  !!}
    {!! Html::style ('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css') !!}
    </head>
<body>
<h1>Gestionnaire de tournois</h1>
<div class="container">
 @include('layouts.navbar')
 </div>
 </body>
</html>

我手动创建了一个布局文件夹,然后创建了导航栏文件。如果我做错了什么,也许有 laravel 的命令行用于创建文件夹?

谢谢你帮我解决我的问题。

那是因为该文件不在 app/views 目录中。当您调用 @include('filename') 时,Blade 会自动在 apps/views 目录中查找具有该名称的任何文件。此外,您不应该写文件扩展名,因为 Blade 会自动查找扩展名为 .blade.php 和 .php 的文件。

Laravel 5 使用此文件夹

resources/views/

首先,

确保您要包含的视图存在于正确的文件夹中。

@include('layouts.navbar') 将包含该路径 \resources\views\layouts\navbar.blade.php

确保布局目录中的文件,

其次,包含的部分不需要写完整html。 navbar.blade.php 将添加(包含)到 welcome.blade.php, 就像你在复制 navbar.blade.php 的内容并将其添加到 welcome.blade.php,

所以改成这样,

navbar.blade.php

<nav class="navbar navbar-default navbar-fixed-top">
    <div class="container-fluid">
        <div class="navbar-header">
            <a class="navbar-brand" href="#">Logo</a>
        </div>
        <ul class="nav navbar-nav">
            <li class="active"><a href="welcome">Accueil</a></li>
            <li><a href="#">Tournois</a></li>
            <li><a href="#">Inscription</a></li>
            <li><a href="#">Contact</a></li>
        </ul>
    </div>
</nav>