Während des Entwicklungsprozesses werden häufig Werte öffentlichen Vorlagen zugewiesen, z. B. der oberen Navigationsleiste, dem unteren Rand der Seite usw. Es ist nicht möglich, Werte zuzuweisen in jedem Controller.
Die Lösung in Laravel lautet wie folgt:
Ändern Sie
AppProvidersAppServiceProvider
Hinzufügen
Ansicht im Boot-Methode ()->composer('common.header',function ($view){ //common.header entspricht der Blade-Vorlage
$view->with('key', 'value');
} );
Sie können auch allen Vorlagen Werte zuweisen
View()->share('key', 'value');
===================================== ==
Ansichtskomponisten beziehen sich auf Ansichten. Sie werden in der boot()-Funktion eines Dienstanbieters verwendet. Wenn eine Ansicht geladen wird, ruft sie eine bestimmte Funktion auf Funktion und übergibt Parameter.
1, erstellen Sie den Dienstanbieter
php artisan make:provider ComposerServiceProvider
und fügen Sie dann ComposerServiceProvider zu config/app.php
2, schreibe View Composer
public function boot() { view()->composer( 'app', //模板名 'App\Http\ViewComposers\MovieComposer' //方法名或者类中的方法 ); }
-Funktion in AppHttpViewComposersMovieComposer
ausgeführt wird (der Grund dafür). sie wird hier ausgeführt. Die Composer-Funktion ist die Standardeinstellung. Wenn Sie sie ändern möchten, composer
//Ihre eigene definierte Methode view()->composer('app','AppHttpViewComposersMovieComposer<a href="https://my.oschina.net/u/862816" class="referer" target="_blank">@foobar</a>');
Die Foobar-Funktion wird hier ausgeführt
Schreiben Sie dies inAppHttpViewComposersMovieComposer.php
<?php namespace App\Http\ViewComposers; use Illuminate\View\View;//**记得引入这个啊(因为在composer函数参数里使用了View类)** class MovieComposer { public $movieList = []; public function __construct() { $this->movieList = [ 'Shawshank redemption', 'Forrest Gump', ]; } public function compose(View $view) { $view->with('latestMovie'); } }
3, andere
Wenn alle Vorlagen erforderlich sind, verwenden Sie *regulären Ausdruck
view()->composer('*', function (View $view) { //logic goes here });
Wenn Sie mehrere zu verwendende Ansichten angeben möchten, packen Sie sie in Arrays ein
view()->composer(['nav', 'footer'],'App\Http\ViewComposers\MovieComposer'); 或者 view()->composer(['admin.admin'], function ($view){ $column = $this->object_array(DB::table('column')->get()); foreach($column as $k=>$v){ $chid = explode(',',$v['childid']); foreach($chid as $value){ $column[$k]['chname'][] = $this->object_array(DB::table('column_child')->where('id',$value)->first()); } } $view->with('columns',$column); });
PHP-Tutorial Kolumne zum Lernen!
Das obige ist der detaillierte Inhalt vonLaravel weist öffentlichen Vorlagen Werte zu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!