2017-01-30 2 views
1

Ich folgte einem Tutorial von Laracast, um Daten an Partials zu übergeben. [Hinweis: Laravel 5.3] Ich habe jeden Schritt wie im Video gemacht, aber ich bekomme undefinierte Variable Fehler in Teil (_nav) .Ich habe alle Kommentare im Video durchgesehen und einige von ihnen hatten auch dasselbe Problem, aber es gab keine Lösung. Sie wissen nicht, was das ging wrong.Is weil ich verwende Laravel 5.3 und Tutorial wurde gemacht auf Laravel 5Undefinierte Variable mit benutzerdefiniertem Service Provider

Unten ist mein Code: Hinzugefügt Maß Service-Provider in config/app.php

App\Providers\ViewComposerServiceProvider::class, 

Maßarbeit Dienstleister `ViewComposerServiceProvider.php

<?php 
namespace App\Providers 
use Illuminate\Support\ServiceProvider; 
class ViewComposerServiceProvider extends ServiceProvider 
{ 
    public function boot() 
    { 
     $this->composeNavigation(); 
    } 
    public function register() 
    { 
    // 
    } 

    private function composeNavigation(){ 
     view()->composer('partials._nav','App\Http\Composers\NavigationComposer'); 
    } 
} 

NavigationComposer.php

<?php 
namespace App\Http\Composers; 
use Illuminate\Contracts\View\View; 
use App\Tour; 
class NavigationComposer{ 

public function compose(View $view) 
    { 
     $view->with('latest',Tour::latest()->first()); 
    } 
} 

Partials Code (partials._nav)

<li><a href="#">{{$latest->title}}</a></li> 
+0

Try 'Komponist dumpauto' und' php Handwerker laufen klar kompilierte Befehle. –

+0

Nach Ihrer Anleitung noch kein Glück versucht –

Antwort

1

Wie Sie das Tutorial-Video bewusst waren auf Larave gemacht wurde 5 und Sie es in 5.3 tun. Und die Methode, die im Video erwähnt oder geübt wird, funktioniert in Laravel 5.3 nicht [nicht vollständig]. Sie haben recht, wenn Sie einen benutzerdefinierten Service-Provider und eine benutzerdefinierte Klasse zur Bearbeitung der Anfrage erstellen.

In Ihrem ViewComposerServiceProvider.phpcomposeNavigation() mentod entfernen und die folgenden in boot() Methode

 View::composer(
     'partials/_nav', 'App\Http\Composers\NavigationComposer' 
    ); 

Und andere Code hinzufügen, scheint alle fine.Here ist die offizielle documentation

+0

Danke, es hat wirklich funktioniert. –