2017-07-08 11 views
1

では動作しませんsection('content')が含まれています。収率は私のような構造を持つサイトを持っているセクションLaravelブレード

@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.phpapartment.blade.php:すべてapartmentを表示するには、このシンプルなこれは、単純なすべてのnews

@foreach($posts as $post) 
@endforeach 

最終的なファイルを表示します。

@foreach($apartments as $apartment) 
@endforeach 

私のルートはmaster.blade.phpです。 私の質問は:

  1. 私はindex.blade.php@yield('news')newsを含む場合。それは私のデータベース内のすべてnewsを正しく示しています。 しかし@yield('news')index.blade.phpに削除しました。また、私のデータベースのnewsを表示しています(ただし、そのためのCSS/jsはありません)。 @yield('news')を削除した理由は、自分のページにnewsを表示しないでください。

  2. Seem Laravel Bladeは2つをサポートしません。@yield@sectionにします。 ファイルに1行だけを追加すると@yield('news')となります。それは、私のインデックスページ上のリストニュースを表示します。私が続けると、@yield('apartment')が追加されます。インデックスページにはアパートがありません。私は確かに値を持っていますforeachデータを取得する。私はHTML静的でもテストしますが、何も変更はありません。

+0

他のテンプレートを追加したい場合は、そのテンプレートを使用しないでください。部分テンプレートをインクルードするためにインクルードします – Exprator

+0

あなたの気持ちは次のようです: '@include( 'news')'? – vanloc

+0

はい。それはあなたがどのように含めるかです。または、それがうまくいかない場合は、laravelのテンプレートを含めて検索することができます。 – Exprator

答えて

0

マイルートmaster.blade.phpへの直接。

インデックスはマスターを拡張しているので、インデックスビューへのルートを指します。

セクションが引き続き生成される場合、@ yieldの削除後に、フレームワークがキャッシュされたビューをロードしていると思います。

ビューキャッシュphp artisan view:clearをクリアするか、php artisan --help view:clearを使用して助けてください。

また、@yieldは、親子関係のセクションを生成します。

ニュースが部分的なフォルダにある場合や、パスが何であれ、収率は@include('partial.news')のように変更してください。レンダリングは、@issetまたは@emptyステートメント、または@forelseループを使用して操作できます。

Blade Control Structures

関連する問題