Heim  >  Artikel  >  PHP-Framework  >  Laravel weist öffentlichen Vorlagen Werte zu

Laravel weist öffentlichen Vorlagen Werte zu

步履不停
步履不停Original
2019-06-24 18:12:383015Durchsuche

Laravel weist öffentlichen Vorlagen Werte zu

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'  //方法名或者类中的方法
        );
    }
, was bedeutet, dass sobald app.blade.php geladen ist, die

-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 in

AppHttpViewComposersMovieComposer.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);
        });
Weitere technische Artikel zu PHP finden Sie im

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn