Heim  >  Artikel  >  PHP-Framework  >  Wie teile ich Daten zwischen Ansichten im Laravel5.5-Framework? Zwei Möglichkeiten, Daten zwischen Ansichten zu teilen (mit Code)

Wie teile ich Daten zwischen Ansichten im Laravel5.5-Framework? Zwei Möglichkeiten, Daten zwischen Ansichten zu teilen (mit Code)

不言
不言Original
2018-08-02 14:11:393358Durchsuche

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

View zuzugreifen Fassaden-Share( )-Methode

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','共享数据片段');
    }
}

viewfacade Composer() Methode

Der View Composer ist eine Rückruffunktion oder Klassenmethode, wenn die Ansicht gerendert wird, wenn Sie die Daten der Ansicht jedes Mal binden müssen, wenn Sie die Ansicht rendern, z. B. Benutzeranmeldeinformationen. Sie können Composer() verwenden, um die Logik an einem separaten Ort zu organisieren.

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!

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