Übergabe von Daten an alle Ansichten in Laravel 5
In Laravel 5 kann der Datenaustausch zwischen allen Ansichten durch verschiedene Methoden erreicht werden.
Methode 1: Verwenden BaseController
Erstellen Sie eine BaseController-Klasse, die Laravels Controller erweitert.
class BaseController extends Controller { public function __construct() { $data = [1, 2, 3]; View::share('data', $data); } }
Alle anderen Controller sollten dann von BaseController:
class SomeController extends BaseController { // ... }
Methode erweitert werden 2: Filter verwenden
Erstellen Sie einen Filter in app/filters.php oder in einer separaten Filterklassendatei:
App::before(function($request) { View::share('data', [1, 2, 3]); });
Alternativ können Sie einen benutzerdefinierten Filter definieren:
Route::filter('data-filter', function() { View::share('data', [1, 2, 3]); });
Wenden Sie den Filter mit Route::filter() auf bestimmte Routen an.
Methode 3: Verwendung von Middleware
Übergeben Sie Daten mithilfe von Middleware an Ansichten:
Route::group(['middleware' => 'SomeMiddleware'], function() { // Routes }); class SomeMiddleware { public function handle($request) { View::share('data', [1, 2, 3]); } }
Methode 4: Verwenden von View Composer
Binden Sie Daten mithilfe von View Composer an Ansichten. Dadurch können Sie Daten an bestimmte Ansichten oder alle Ansichten binden.
Um Daten an eine bestimmte Ansicht zu binden, erstellen Sie eine ViewComposer-Klasse und registrieren Sie sie beim Dienstanbieter:
// ViewComposer use Illuminate\Contracts\View\View; class DataComposer { public function compose(View $view) { $view->with('data', [1, 2, 3]); } } // Service Provider public function boot() { view()->composer('view-name', 'DataComposer'); }
Zum Binden Um Daten in alle Ansichten zu übertragen, verwenden Sie den folgenden Code im Dienst Anbieter:
view()->composer('*', 'DataComposer');
Referenz:
Das obige ist der detaillierte Inhalt vonWie kann ich Daten in allen Ansichten in Laravel 5 teilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!