2016-06-02 23 views
0

Ich folge dem official documentation of laravel, um Vorlagen mit Blade zu erstellen.Ich versuche, meine erste Vorlage zu erstellen, funktioniert aber nicht.mit Lumen 5.2 mit Blade-Template-Engine?

1) Stored in Ressourcen/views/default.blade.php --->

<html> 
<head> 
    @include('includes.head') 
</head> 
<body> 
<div class="container"> 

    @include('includes.header') 


    <div id="main" class="row"> 

      @yield('content') 

    </div> 

</div> 
</body> 
</html> 

2 in Ressourcen gespeichert)/views/home.blade.php ->

@extends('layouts.default') 
@section('content') 
    I am the Home Page! 
@endsection 

3) Stored in Bootstrap/app.php ->

$app->get('/', function(){ 
    return view('home'); 
}); 

4) localhost: 8000/Rückgabe dieser Fehler ->

Whoops, sieht aus wie etwas schief gelaufen ist. 2/2 ErrorException in FileViewFinder.php Zeile 137: View [layouts.default] nicht gefunden. (Ansicht: /home/vagrant/lumen/resources/views/home.blade.php)

in FileViewFinder.php line 137 
at CompilerEngine->handleViewException(object(InvalidArgumentException), '1') in PhpEngine.php line 44 
at PhpEngine->evaluatePath('/home/vagrant/lumen/storage/framework/views/96985f6d91158d600b1d1b64b5a3060d84415fda.php', array('__env' => object(Factory), 'app' => object(Application))) in CompilerEngine.php line 59 
at CompilerEngine->get('/home/vagrant/lumen/resources/views/home.blade.php', array('__env' => object(Factory), 'app' => object(Application))) in View.php line 149 
at View->getContents() in View.php line 120 
at View->renderContents() in View.php line 85 
at View->render() in Response.php line 53 
at Response->setContent(object(View)) in Response.php line 199 
at Response->__construct(object(View)) in RoutesRequests.php line 643 
at Application->prepareResponse(object(View)) in RoutesRequests.php line 505 
at Application->callActionOnArrayBasedRoute(array(true, array(object(Closure)), array())) in RoutesRequests.php line 479 
at Application->handleFoundRoute(array(true, array(object(Closure)), array())) in RoutesRequests.php line 376 
at Application->Laravel\Lumen\Concerns\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52 
at Pipeline->Laravel\Lumen\Routing\{closure}(object(Request)) in CorsMiddleware.php line 6 
at CorsMiddleware->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(CorsMiddleware), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 
at Pipeline->Laravel\Lumen\Routing\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 102 
at Pipeline->then(object(Closure)) in RoutesRequests.php line 626 
at Application->sendThroughPipeline(array('App\Http\Middleware\CorsMiddleware'), object(Closure)) in RoutesRequests.php line 382 
at Application->dispatch(null) in RoutesRequests.php line 327 
at Application->run() in index.php line 28 

1/2 InvalidArgumentException in FileViewFinder.php Linie 137: View [layouts.default] nicht gefunden.

in FileViewFinder.php line 137 
at FileViewFinder->findInPaths('layouts.default', array('/home/vagrant/lumen/resources/views')) in FileViewFinder.php line 79 
at FileViewFinder->find('layouts.default') in Factory.php line 165 
at Factory->make('layouts.default', array('obLevel' => '1', '__env' => object(Factory), 'app' => object(Application))) in 96985f6d91158d600b1d1b64b5a3060d84415fda.php line 4 
at include('/home/vagrant/lumen/storage/framework/views/96985f6d91158d600b1d1b64b5a3060d84415fda.php') in PhpEngine.php line 42 
at PhpEngine->evaluatePath('/home/vagrant/lumen/storage/framework/views/96985f6d91158d600b1d1b64b5a3060d84415fda.php', array('__env' => object(Factory), 'app' => object(Application))) in CompilerEngine.php line 59 
at CompilerEngine->get('/home/vagrant/lumen/resources/views/home.blade.php', array('__env' => object(Factory), 'app' => object(Application))) in View.php line 149 
at View->getContents() in View.php line 120 
at View->renderContents() in View.php line 85 
at View->render() in Response.php line 53 
at Response->setContent(object(View)) in Response.php line 199 
at Response->__construct(object(View)) in RoutesRequests.php line 643 
at Application->prepareResponse(object(View)) in RoutesRequests.php line 505 
at Application->callActionOnArrayBasedRoute(array(true, array(object(Closure)), array())) in RoutesRequests.php line 479 
at Application->handleFoundRoute(array(true, array(object(Closure)), array())) in RoutesRequests.php line 376 
at Application->Laravel\Lumen\Concerns\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52 
at Pipeline->Laravel\Lumen\Routing\{closure}(object(Request)) in CorsMiddleware.php line 6 
at CorsMiddleware->handle(object(Request), object(Closure)) 
at call_user_func_array(array(object(CorsMiddleware), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136 
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32 
at Pipeline->Laravel\Lumen\Routing\{closure}(object(Request)) 
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 102 
at Pipeline->then(object(Closure)) in RoutesRequests.php line 626 
at Application->sendThroughPipeline(array('App\Http\Middleware\CorsMiddleware'), object(Closure)) in RoutesRequests.php line 382 
at Application->dispatch(null) in RoutesRequests.php line 327 
at Application->run() in index.php line 28 
+2

warum Ansichten mit Lumen mit? Es ist für Micro Apis entworfen! Verwenden Sie Laravel stattdessen –

Antwort

1

Die URL, die Sie erwähnen ist für Laravel nicht Lumen Lumen ist ein Leichtes Laravel, Es ist für API-Schicht und Backend-Job-Verarbeitung. Ich empfehle stattdessen Laravel.

+1

[Nur zustandslose APIs] (https://lumen.laravel.com/docs/5.2/releases) danke! :) –

+0

Für kleine und leichte cms müssen Sie Laravel nicht installieren, mit Lumen können Sie normalerweise mit Blade arbeiten. Ich arbeite gerade an Lumen 5.4 und Klinge läuft wie ein Zauber. Joeldg und Autista_z haben es besser erklärt. –

+0

Wie erwähnt [hier] (https://stackoverflow.com/a/29648574/842768), nach Lumen 5.2, soll es nur für APIs verwendet werden. @Khesayed ist nicht falsch, benutze stattdessen Laravel. – giovannipds

2

Funktion @extends ('name') Datei "name.blade.php" oder "name.php" im Verzeichnis "Ressourcen/Ansichten" Wenn Sie @extends verwenden ('layouts.default' gefunden), heißt es, es findet Datei "default.blade.php" oder "default.php" im Verzeichnis "resources/views/layouts" (Unterordner Layouts in Sichten)

Aber Sie haben Ihre "deafault.blade. php“in "Ressourcen/Ansichten" So sollte es durch @extends ('default')

+0

vielen Dank! :) danke deiner erklärung Ich habe verstanden, was falsch war nach Laravels Richtlinien. Aber im Lumen funktioniert nicht. –

0

Ich hatte das gleiche Problem. Es passiert, weil Ordner/var/www * geschützt ist.

Sie müssen CHMOD und CHOWN des Ordners/resource in Ihr Lumenprojekt rekursiv ändern.

Versuchen Sie es:
$ cd /your-lumen-path
$ sudo chmod 777 -R storage
$ sudo chown -R $USER:$USER storage

1

Die gewählte Antwort falsch ist, Lumen Klinge standardmäßig installiert ist. Die von Ihnen verwendete Rückgabe funktioniert nicht.

Ihre Route benötigt wie

$app->get('/', function() use ($app) { 
    return $app->make('view')->make('index'); 
}); 
1

Die gewählte Antwort (https://stackoverflow.com/a/37625344/7506001) ist falsch zu suchen.

@joeldg und @autista_z sind beide korrekt.

Ab Lumen 5.4 sind Blade-Ansichten weiterhin verfügbar und verwendbar, auch wenn sie nicht mehr dokumentiert sind.

Voll Beispiel:

// In routes/web.php: 
$app->get('/', function() use ($app) { 
    return $app->make('view')->make('home'); 
}); 

// In resources/views/default.blade.php: 
<html> 
    <head>...</head> 
    <body> 
    <div id="whatever"> 
     @yield('content') 
    </div> 
    </body> 
</html> 

// In resources/views/home.blade.php: 
@extends('default') 
@section('content') 
    <p>I am the Home Page!</p> 
@endsection 
+1

Es scheint, dass ab Lumen 5.2 und auf Lumen bedeutet, dass sie zustandslos sind, was bedeutet, dass sie Sessions, CSRF-Middleware, Cookie-Middleware entfernt und die Aufrufe weniger prominent gemacht haben. Für Personen, die Lumen 5.2 und höher verwenden, sollte, wenn sie die Dokumentation für Ansichten von Lumen benötigen, auf Version 5.1 verwiesen werden oder versuchen, aus der Laravel 5.2 und höheren Dokumenten zu extrapolieren. – racl101