2017-08-31 6 views
0

Ich versuche, die Ansichten meines benutzerdefinierten Pakets zu verwenden, ohne sie zu view.php Conf-Datei hinzuzufügen. Ich habe den folgenden Dienstanbieter erstellt und der Datei app.php hinzugefügt.Zugriff auf eine Paketansichten

Ich habe versucht, eine Paketansicht von view('foo.test') zu verwenden. Die View-Datei befindet sich in 'packages/foo/bar/views/test.blade.php'. Laravel kann die Ansichtsdatei jedoch noch nicht finden. Was muss ich noch tun? BTW, ich muss keine View-Dateien in resource/views Ordner veröffentlichen.

Antwort

0

Sobald Sie die Ansichten im Boot geladen, wie Sie gerade tun:

class FooServiceProvider extends ServiceProvider 
{ 
    public function boot() 
    { 
     $this->loadViewsFrom(__DIR__.'/../views', 'foo'); 
    } 
    public function register() 
    { 
    } 
} 

überprüfen Sie Ihre Service-Provider Lasten aus dem entsprechenden Ordner wie jetzt sind Sie packages/foo/bar/views/teset.blade.php so Ihre Service-Provider sein muss, die in packages/foo/bar/providers kann es providers oder jede other folder name nur beispielsweise angegeben sein und bitte um die Rechtschreibprüfung stellen Sie sicher, Sie haben Klinge Datei teset genannt und Sie anrufen test dann schließlich können Sie diese Ansicht in Controller rufen mit etwas wie folgt aus:

return ('foo::test') 

Update: Well nach der Anforderung Sie Änderungen in Config auf fly vornehmen müssen dann diese müssen Sie Service-Provider, so etwas haben:

use Illuminate\View\FileViewFinder; 
use Illuminate\View\ViewServiceProvider; 

class WebViewServiceProvider extends ViewServiceProvider 
{ 

    /** 
    * Register View Folder 
    * 
    * @return void 
    */ 
    public function registerViewFinder() 
    { 

     $this->app->bind('view.finder', function ($app) { 
      $paths = 'your view directory'; 

      return new FileViewFinder($app['files'], array(base_path($paths))); 
     }); 
    } 
} 

Hoffnung, das hilft.

+0

Danke für Ihre Antwort. 'teset' war ein Typ in Frage. Die Frage ist, wie kann ich meinen Paketordner zum Anzeigen von Ordnern hinzufügen. Genauso funktioniert das in 'config/view.php' ohne View Namespace (' :: ') – PHPst

+0

Ich habe die Antwort aktualisiert, bitte nachsehen. –