Laravel 5 のすべてのビューにデータを渡す
Laravel 5 では、さまざまな方法ですべてのビュー間でデータを共有できます。
方法 1: を使用するBaseController
Laravel のコントローラーを拡張する BaseController クラスを作成します。
class BaseController extends Controller { public function __construct() { $data = [1, 2, 3]; View::share('data', $data); } }
他のすべてのコントローラーは BaseController から拡張する必要があります:
class SomeController extends BaseController { // ... }
メソッド2: 使用するフィルター
app/filters.php または別のフィルター クラス ファイルでフィルターを作成します:
App::before(function($request) { View::share('data', [1, 2, 3]); });
または、カスタム フィルターを定義します:
Route::filter('data-filter', function() { View::share('data', [1, 2, 3]); });
次を使用して特定のルートにフィルターを適用しますRoute::filter().
メソッド 3: ミドルウェアを使用する
ミドルウェアを使用してビューにデータを渡す:
Route::group(['middleware' => 'SomeMiddleware'], function() { // Routes }); class SomeMiddleware { public function handle($request) { View::share('data', [1, 2, 3]); } }
メソッド4: View Composer の使用
View を使用してデータをビューにバインドする作曲家。これにより、データを特定のビューまたはすべてのビューにバインドできます。
データを特定のビューにバインドするには、ViewComposer クラスを作成し、サービス プロバイダーに登録します。
// 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'); }
バインドするにはデータをすべてのビューに送信するには、サービスで次のコードを使用しますプロバイダー:
view()->composer('*', 'DataComposer');
リファレンス:
以上がLaravel 5 のすべてのビューでデータを共有するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。