Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich Daten in allen Ansichten in Laravel 5 teilen?

Wie kann ich Daten in allen Ansichten in Laravel 5 teilen?

Patricia Arquette
Freigeben: 2024-12-01 02:36:08
Original
727 Leute haben es durchsucht

How Can I Share Data Across All Views in Laravel 5?

Ü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);
    }
}
Nach dem Login kopieren

Alle anderen Controller sollten dann von BaseController:

class SomeController extends BaseController {
    // ...
}
Nach dem Login kopieren

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]);
});
Nach dem Login kopieren

Alternativ können Sie einen benutzerdefinierten Filter definieren:

Route::filter('data-filter', function() {
    View::share('data', [1, 2, 3]);
});
Nach dem Login kopieren

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]);
    }
}
Nach dem Login kopieren

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');
}
Nach dem Login kopieren

Zum Binden Um Daten in alle Ansichten zu übertragen, verwenden Sie den folgenden Code im Dienst Anbieter:

view()->composer('*', 'DataComposer');
Nach dem Login kopieren

Referenz:

  • [Laravel-Dokumentation](https://laravel.com/docs/5.7/views#sharing-data -mit-allen-Ansichten)
  • [Laracast Folge](https://laracasts.com/learn/laravel/eloquent/making-models)

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage