Maison >développement back-end >tutoriel php >Comment puis-je partager efficacement des données dans toutes les vues dans Laravel 5 ?
L'impératif de rendre certaines données universellement accessibles dans toutes les vues d'une application dans Laravel 5 est fréquemment rencontré par les développeurs. Ce didacticiel vous guidera méticuleusement à travers plusieurs approches pour atteindre cet objectif.
L'établissement d'une classe BaseController qui étend le contrôleur de Laravel fournit un moyen pratique d'initialiser et de partager des données à l'échelle mondiale. D'autres contrôleurs peuvent alors hériter de BaseController au lieu du contrôleur par défaut.
class BaseController extends Controller { public function __construct() { $user = User::all(); View::share('user', $user); } }
Des filtres peuvent être utilisés pour garantir que des données spécifiques sont méticuleusement configurées pour chaque vue sur toutes les requêtes :
App::before(function($request) { View::share('user', User::all()); });
Vous pouvez également établir un filtre sur mesure et l'invoquer explicitement :
Route::filter('user-filter', function() { View::share('user', User::all()); }); Route::group(['filter' => 'user-filter'], function() { // Define routes here });
Le middleware offre une autre approche simplifiée pour la mise en œuvre du partage de données entre les vues.
Route::group(['middleware' => 'SomeMiddleware'], function() { // Define routes here }); class SomeMiddleware { public function handle($request) { View::share('user', auth()->user()); } }
View Les compositeurs fournissent un mécanisme flexible pour lier des données distinctes à des vues spécifiques. Vous pouvez définir des compositeurs qui ciblent des vues individuelles ou s'appliquent à toutes les vues.
view()->composer("ViewName", "App\Http\ViewComposers\TestViewComposer"); class TestViewComposer { public function compose(View $view) { $view->with('ViewComposerTestVariable', "Calling with View Composer Provider"); } }
Dans la vue ViewName.blade.php :
{{ $ViewComposerTestVariable }}
Pour appliquer un compositeur de vue à toutes les vues, modifiez simplement le fournisseur de services :
view()->composer('*', "App\Http\ViewComposers\TestViewComposer");
En conclusion, Laravel 5 offre un large éventail d'approches pour partager des données entre vues, permettant aux développeurs de sélectionner la méthode la plus appropriée en fonction sur leurs besoins 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!