2017-07-18 4 views
-2

Das ist mein Code, aber es ist nicht korrekt, fünf Mal in einem Controller zu rendern, wie kann ich das beste Ergebnis dafür erhalten?Wie kann ich mehrere Ansichten rendern in 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

Haben Sie schon einmal von Klingen gehört? Es ist eine Vorlagen-Engine, in der Sie Vorlagen hinzufügen und einfügen können. Das scheint genau das zu sein, was du willst. – milo526

+0

Danke Aber denke, ich bin nicht bereit für die Klinge will nur wissen, wie Laravel es in Controller machen kann – Imediasun

+3

Kommen Sie zufällig aus codeigniter? Dies ist, wie Sie es in diesem Rahmen tun, aber es ist der falsche Weg, es in Laravel zu tun. Unter [Blade-Layout-Vorlagen] (https://laravel.com/docs/5.4/blade#defining-a-layout) finden Sie weitere Informationen. – jfadich

Antwort

1

Betrachten mit nativen Laravel Blade Vorlagen.

Sie werden in der Lage sein, enthält zu machen, reicht die Renditen usw.

ZB:

app.blade.php

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

example.blade.php

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

In Ihrem Controller

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 
} 
Verwandte Themen