2017-07-18 10 views
-2

これは私のコードですが、1つのコントローラで5回レンダリングするのは正しくありません。どうすればこのような結果が得られますか?Laravelで複数のビューをレンダリングするには

public static function index($path,$data,$data_nav,$data_content) 
{ 
    $view=view($path.'.preheader_view',$data)->render(); 
    $view.=view($path.'.header_view')->render(); 
    $view.=view($path.'.main_navigation_view',$data_nav)->render(); 
    $view.=view($path.'.main_content_view',$data_content)->render(); 
    $view.=view($path.'.main_aside_view',$data)->render(); 
    $view.=view($path.'.footer_view',$data)->render(); 
    return $view; 
} 
+1

ブレードについて聞いたことがありますか?テンプレートを拡張してインクルードできるテンプレートエンジンです。これはまさにあなたが望むものと思われます。 – milo526

+0

ありがとう、しかし、私はブレードの準備ができていないと思うだけで、Laravelがコントローラーでそれを作る方法を知りたがっています。 – Imediasun

+3

codeigniterから来ていますか?これはあなたがそのフレームワークでそれを行う方法ですが、Laravelでそれを行うのは間違った方法です。詳細については、[Blade layout templates](https://laravel.com/docs/5.4/blade#defining-a-layout)を参照してください。 – jfadich

答えて

1

ネイティブLaravel Bladeテンプレートを使用することを検討してください。

あなたは

例:など、歩留まりを拡張し、含ませることができるでしょう:

app.blade.php

<html> 
@yield('content') 
</html> 

example.blade.php

@extends('app') 
@section('content') 
Here is your content, with some {{$variables}} 
@endsection 

コントローラ内

public function method() { 
    ... 
    return view('example')->with(['variables'=>'VARIABLE TEXT']); 

    //example refers to example.blade.php 
    //eg: yourpage refers to yourpage.blade.php 
    //with subdirectories: foo.bar refers to foo/bar.blade.php 
} 
関連する問題