Introduction
La transmission de données à toutes les vues dans les applications Laravel 5 peut améliorer le code réutilisabilité et fournir un contexte de données cohérent dans toutes les vues. Cet article explore différentes méthodes pour y parvenir dans Laravel 5.
Utilisation de BaseController
Cette approche implique la création d'une classe BaseController qui étend la classe Controller de Laravel. Les données globales peuvent être définies dans la méthode __construct() de la classe BaseController, et tous les autres contrôleurs qui héritent de BaseController auront accès à ces données.
class BaseController extends Controller { public function __construct() { // Access your global data here $user = User::all(); View::share('user', $user); } }
Utilisation des filtres
Les filtres fournissent un mécanisme pour exécuter du code avant chaque requête. Les données globales peuvent être définies dans le filtre avant, les rendant disponibles pour toutes les vues.
App::before(function($request) { // Access your global data here View::share('user', User::all()); });
Utilisation du middleware
Dans Laravel 5, le middleware fournit un mécanisme de filtrage plus puissant. Semblables aux filtres, les données globales peuvent être définies dans la méthode handle du middleware.
Route::group(['middleware' => 'SomeMiddleware'], function(){ // routes }); class SomeMiddleware { public function handle($request) { \View::share('user', auth()->user()); } }
Utilisation de View Composer
Les compositeurs de vues vous permettent de lier des données spécifiques à des vues. Les données globales peuvent être liées à toutes les vues en utilisant un fournisseur de services View Composer.
// Service Provider namespace App\Providers; use Illuminate\Support\ServiceProvider; class ViewComposerServiceProvider extends ServiceProvider { public function boot() { view()->composer("*", "App\Http\ViewComposers\TestViewComposer"); } } // View Composer namespace App\Http\ViewComposers; use Illuminate\Contracts\View\View; class TestViewComposer { public function compose(View $view) { $view->with('ViewComposerTestVariable', "Calling with View Composer Provider"); } }
Conclusion
Cet article propose plusieurs méthodes pour transmettre des données à toutes les vues dans un Laravel 5. application, permettant aux développeurs de maintenir un contexte de données cohérent et d'améliorer la réutilisabilité du code. Le choix de la méthode dépend des exigences et des préférences spécifiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!