2016-10-27 3 views
0

Ich habe ein Paket in meinem Laravel-Projekt, das einen eigenen Blick hat. Ich muss diese Ansicht in die Hauptansicht meines Projekts aufnehmen. Mein Paket heißt Tkabir \ Somepackage. In meinem Projekt config/app.php habe ich den Service-Provider für das Paket enthalten alsPaketansicht in meiner Hauptansicht einschließen

'providers' => [ 
    /* 
    * Package Service Providers... 
    */ 
    Tkabir\Somepackage\SomeServiceProvider::class, 
] 

und enthalten auch Alias ​​für Fassade des Pakets als

'aliases' => [ 
    /* 
    */ 
    'Somepackage' => Tkabir\Somepackage\Facade\Somepackage::class, 
] 

Aber noch, wenn ich versuche, die einschließen Blick aus dem Paket in meinem Hauptansicht wie folgt aus:

@include('Somepackage::welcome') 

... wo welcome.blade.php die Klinge view-Datei in mein Paket ist, erhalte ich die folgende Fehlermeldung angezeigt:

ErrorException in FileViewFinder.php Zeile 112: Kein Hinweispfad für [Somepackage] definiert. (Ansicht: E: \ xampp \ htdocs \ laravel-> projects \ test_package \ resources \ Ansichten \ welcome.blade.php)

Was das Problem zu sein scheint, hier zu sein?

Hier ist der Link zu meinem Paket in Github, wenn jemand die Dateien sehen muss: mypackage

+0

Kann jemand mit einem hohen Repräsentanten bitte den Titel meines Beitrags redigieren, um mehr Sinn zu machen? Ich fing an, den Titel zu schreiben, aber dann vergaß ich es zu beenden -_- – BangularTK

+0

besser, um Ihre Paket-Ansichten zu laravel Ressource-Verzeichnis zu veröffentlichen, wird es einfacher Zugang sein. – umefarooq

Antwort

0

@include enthält einen Blick. Sie rufen eine Methode für eine Klasse auf.

Sie sind einschließlich Konfigurationen richtig mit

$this->publishes([ 
    .'/Config/somepackage.php' => config_path('somepackage.php'), 
], 'config'); 

Sie müssen die gleiche Sache für Ihre Ansichten in Ihrem Service-Providers boot() Methode für Ansichten tun: https://laravel.com/docs/5.3/packages#views | Rubrik: Publishing Ansichten

Sie müssen auch php artisan vendor:publish genauso wie für Konfigurationen laufen würde, und geben Sie Ihre Ansicht mit @include

Werfen Sie einen Blick auf den Link, den ich in Laravel für eine vollständige Dokumentation Erstellen von Paketen gab

+0

Vielen Dank! Gefolgt genau, was du gesagt hast, und es hat wie ein Charme funktioniert! Ich habe jedoch einige Variablen in der Ansicht des Pakets, die von controller/config definiert wurden. Um diese Variablen in meiner Hauptansicht zu verwenden, müsste ich auch die Controller und Konfigurationsdateien aus dem Paket veröffentlichen, oder? – BangularTK

+0

Es ist wahrscheinlich am besten, Controller mit Laravel zu belassen und stattdessen eine Klasse in Ihrem Paket zu erstellen. Rufen Sie dann die Klasse in einem der Controller auf, der die Ansicht lädt, die Sie einschließen müssen, und geben Sie dann diese Daten ein. – Pazuzu156

Verwandte Themen