屈服在Laravel Blade部分不起作用

时间:2017-07-08 17:14:54

标签: php laravel blade

我的网站结构如下:

首先:master.blade.php:这包含section('content')

<body>
   @include('partial.header')
   @yield('content')
   @include('partial.footer')
</body>

第二个index.blade.php:包含section('content')

@extends('layouts.master')
@section('content')
<div id="container">
   <div id="news">
      @yield('news')
   </div>
   <div id="apartment">
      @yield('apartment')
   </div>
</div> <!-- ./container -->
@endsection

第三:news.blade.php:这很简单,可以显示所有news

@foreach($posts as $post)
@endforeach

最终文件:apartment.blade.php:这很简单,可以显示所有apartment

@foreach($apartments as $apartment)
@endforeach

我的路线指向master.blade.php。 我的问题是:

  1. 当我在news中添加@yield('news') index.blade.php时。它在我的数据库中显示正确的所有news。 但是当我在@yield('news')中删除index.blade.php时。它还显示我的数据库中的news(但它丢失了css / js)。 为什么我删除@yield('news'),我的网页上不应显示任何news

  2. 似乎Laravel Blade不支持@yield中的两个@section。当我只在@yield('news')文件中添加1行index.blade.php时。它在我的索引页面上显示列表新闻。当我继续添加@yield('apartment')时。索引页面上没有显示任何公寓。我肯定在foreach获取数据时有值。我还测试了HTML静态,但没有任何变化。

1 个答案:

答案 0 :(得分:0)

  

我的路线指向master.blade.php。

索引扩展了master,因此请将路由指向索引视图。

如果继续产生部分,删除@yield后,我认为框架正在加载缓存视图。

尝试清除视图缓存php artisan view:clear或使用php artisan --help view:clear寻求帮助。

@yield也会在父子关系中产生一个部分。

如果新闻在部分文件夹或路径中,则将收益更改为包括@include('partial.news')。可以使用@isset@empty语句甚至@forelse循环来处理渲染。

Blade Control Structures