繁体   English   中英

Laravel Blade视图不起作用

[英]Laravel Blade view not working

我正在使用Laravel 5.3.28版本。 我创建了主视图(main.blade.php),并尝试从view / pages目录中的不同子视图(navbar.blade.php)中提取详细信息,但它不起作用。

路线文件位于project / routes / web.php中

            Route::get('/', function () {
                return view('main');
            });

资源/视图/main.blade.php中的主视图(此文件将从navbar.blade.php接收数据)

                        <div id="column">Test1</div>
                        <div id="container">
                            @yield('content')<!--This will get the content from navbar.blade.php-->
                        </div>

资源/视图/页面/navbar.blade.php中的子视图

            @extends('main')
            @section('content')
                    <div id="row">
                       Test2
                     </div>
            @endsection

我能够看到输出为Test1,但看不到Test2。 为什么会这样呢?

要查看导航栏内容,您应该返回navbar视图:

Route::get('navbar', function () {
    return view('navbar');
});

但是,如果您打算在许多视图中包含导航栏,则应使用@include()而不是section()extends()yield()

@include(`navbar`)

要查看输出Test2,您必须返回navbar视图

Route::get('/', function () {
        return view('navbar');
    });

@yield是扩展main view的地方,然后可以在此内容中添加一些内容。

我在下面通过使用您的视图文件的示例进行说明

您只需将其放在navbar.blade.php中。 它不需要扩展。

 <div id="row">
     Test2
 </div>

在您的main.blade.php中,您可以将其

  <div id="column">Test1</div>
                    <div id="container">
                        @include('navbar')
                      @yield('content')  
  </div>

假设您已决定创建第三个视图,它将用导航栏视图扩展主视图。 假设您创建了一个名为home.blade.php的视图,并将其添加到您的home.blade.php视图中

@extends('main')
@section('content')
 Welcome Home !!!
@endsection

然后,如果您致电,请按如下所示创建路线

Route::get('/home', function () {
    return view('home');
});

它将如下所示

<div id="column">Test1</div>
                <div id="container">
                      <div id="row">
                        Test2
                      </div>
                 Welcome Home !!!  
               </div>

希望这会清除您关于视图渲染的概念

您应该调用view('navbar')而不是view('main'),因为navbar是主视图的子级

如果您呼叫父级子级内容,则不会在呼叫视图中看到那里的内容(“ navbar”)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM