Heim >PHP-Framework >Laravel >Wie teile ich Daten zwischen Ansichten im Laravel5.5-Framework? Zwei Möglichkeiten, Daten zwischen Ansichten zu teilen (mit Code)
LaravelEs gibt zwei Möglichkeiten, Daten zwischen Ansichten im Framework zu teilen. Eine wird mit der View-Fassade-Share()-Methode und die andere mit der View-Fassade-Composer()-Methode implementiert Es gibt zwei Methoden. Was ist die Implementierung? Werfen wir einen Blick auf den Inhalt des nächsten Artikels.
Zuallererst ist Folgendes zu beachten: : Die View-Fassade wird verwendet, um auf die zugrunde liegende Implementierung von IlluminateContractsViewFactory
Manchmal müssen Sie Datenfragmente zwischen allen Ansichten teilen. In diesem Fall können Sie die Share-Methode der Ansichtsfassade verwenden.
1. Im Allgemeinen erstelle ich einen Basiscontroller BaseController.php unter apphttpControllersxx
ac924c01a08f6900d864ce13cf1f9067initViewShare(); //视图共享数据 } /** * 视图共享数据方法 */ public function initViewShare() { view()->share('action_name',get_action_name()); //当前URL的方法器名 } } //视图使用 //共享视图一般都是在layout中 {{ $action_name }}
get_action_name() ist eine benutzerdefinierte Funktion.
Tipps:
Erstellen Sie appHelpersExtmanFun.php, führen Sie Autoload in Composer.json ein
"files":[ "app/Helpers/ExtmanFun.php" ]
Führen Sie „composer dump-autoload“ aus und es wird automatisch geladen
2, rufe share()
da2d57d3bdb10de22b42a0069dfc7eb3share('name','共享数据片段'); } }
In diesem Beispiel registrieren wir den View Composer beim AppServiceProvider-Dienstanbieter
Der Anbietercode lautet wie folgt:
cc1a47858451ba5ff0ab8b6b1b5c5200composer( //'*', 'App\Http\ViewComposers\AuthComposer' //['extman.home, welcome'], 'App\Http\ViewComposers\AuthComposer' ['extman.*'], 'App\Http\ViewComposers\AuthComposer' ); //使用基于回调函数 view()->composer('*',function($view){ $view->with('user',array('name'=>'test','avatar'=>'/path/to/test.jpg')); }); } other code }Wenn Sie einen neuen Dienstanbieter erstellen, um die View Composer-Registrierung einzuschließen, Sie müssen diesen Dienstanbieter zum Provider-Array der Konfigurationsdatei config/app.php hinzufügen Der View Composer wurde bisher registriert und die AuthComposer@compose-Methode wird jedes Mal ausgeführt, wenn alle Ansichten im Extman angezeigt werden Verzeichnis werden gerendert.
Definieren Sie die Ansichts-Composer-Klasse AppHttpViewComposersAuthComposer.php
01c01bc34336503a6e00eaa6a82e83a6users = $users; } //绑定数据到视图 public function compose(View $view) { $user_info = \Auth::user(); $view->with('motto', $user_info); $view->with('count', $this->users->count()); } }Bevor die Ansicht gerendert wird, wird die Compose-Methode der AuthComposer-Klasse aufgerufen und die IlluminateViewView-Instanz in die Methode eingefügt, damit sie mit der Methode verknüpft werden kann kann verwendet werden, um Daten an die Anzeige zu binden. Alle View Composer werden über den Service-Container aufgelöst, sodass Sie einen Hinweis auf die Abhängigkeiten eingeben können, die in den Konstruktor des View Composers eingefügt werden müssen. Empfohlene verwandte Artikel:
Detaillierte Erläuterung der gemeinsamen Daten zwischen Laravel-Ansichten und der View Composer_php-Instanz
Laravel 5 Framework-Lernen Richtungsansicht überträgt Daten, Laravel-Framework
Das obige ist der detaillierte Inhalt vonWie teile ich Daten zwischen Ansichten im Laravel5.5-Framework? Zwei Möglichkeiten, Daten zwischen Ansichten zu teilen (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!