Laravel View Creatorを使用すると、ビューコンビネーターよりも早く表示されるインスタンス化の直後にデータを準備できます。これにより、必要なビューデータのセットアップやパフォーマンスの最適化に最適です。
動的アプリケーションの管理メニューの管理の実用的な例を見てみましょう:
最初に、ビュークリエーターを登録してください:
use Illuminate\Support\Facades\View; // 注册视图创建器 View::creator('dashboard', DashboardCreator::class);
次に、ビュークリエータークラスを定義します:
<?php namespace App\View\Creators; use App\Services\MenuService; use Illuminate\View\View; use Illuminate\Support\Facades\Auth; class ApplicationMenuCreator { protected $menuService; public function __construct(MenuService $menuService) { $this->menuService = $menuService; } public function create(View $view) { $user = Auth::user(); $view->with([ 'mainMenu' => $this->menuService->getMainMenu($user), 'quickActions' => $this->menuService->getQuickActions($user), 'recentItems' => $this->menuService->getRecentItems($user), 'notifications' => $this->menuService->getPendingNotifications($user) ]); } }
AppServiceProvider
:
// 在你的 AppServiceProvider public function boot() { View::creator('layouts.app', ApplicationMenuCreator::class); }
最後に、layouts/app.blade.php
:
<div class="sidebar"> <nav> @foreach($mainMenu as $menuItem) <a class="https://www.php.cn/link/a754fc1765a45a6bc1a034140afd0669'active'] ? 'active' : '' }}" href="https://www.php.cn/link/a754fc1765a45a6bc1a034140afd0669'url'%5D%20%7D%7D"> https://www.php.cn/link/a754fc1765a45a6bc1a034140afd0669'label'] }} </a> @endforeach </nav> @if(count($quickActions)) <div class="quick-actions"> @foreach($quickActions as $action) {{ $action['label'] }} @endforeach </div> @endif </div>
ビュークリエーターは、ビューの初期データの準備を提供し、ビューインスタンス化の直後に重要なデータが利用可能になるようにします。 これにより、アプリケーションのパフォーマンスとコードメンテナビリティが向上するのに役立ちます。
以上がLaravel View Creatorsを使用したアーリービューデータ準備の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。