laravel5.5フレームワークでビュー間でデータを共有するにはどうすればよいですか? ビュー間でデータを共有する2つの方法(コードを使用)
laravel フレームワーク内のビュー間でデータを共有するには 2 つの方法があります。1 つは view facade share() メソッドを使用して実装され、もう 1 つは view facade combos() メソッドを使用して実装されます。 2つの方法は?次回の記事の内容を見ていきましょう。
まず第一に、注意すべき点が 1 つあります : View ファサードは、IlluminateContractsViewFactory の基になる実装にアクセスするために使用されます
View facade share() メソッド
間でデータ フラグメントを共有する必要がある場合があります。すべてのビュー、これはビュー ファサードの共有メソッドを使用できます。
1. 通常、apphttpControllersxx の下に基本的なコントローラー BaseController.php を作成します。
<?php namespace App\Http\Controllers\ExtMan; use Illuminate\Routing\Controller; class BaseController extends Controller { public function __construct(\Auth $auth) { $this->initViewShare(); //视图共享数据 } /** * 视图共享数据方法 */ public function initViewShare() { view()->share('action_name',get_action_name()); //当前URL的方法器名 } } //视图使用 //共享视图一般都是在layout中 {{ $action_name }}
get_action_name() はカスタマイズされた関数です。
ヒント:
appHelpersExtmanFun.phpを作成し、composer.jsonの自動ロードを導入します
"files":[ "app/Helpers/ExtmanFun.php" ]
composer dump-autoloadを実行すると、自動的にロードされます
2、AppServiceProviderサービスプロバイダーのブートメソッドでshareを呼び出します(または作成します)新しいプロバイダー) ()
<?php namespace App\Providers; use View; class AppServiceProvider extends ServiceProvider { /** * 启动所有应用服务 * * @return void */ public function boot() { View::share('key', 'value'); //也可使用 view()->share('name','共享数据片段'); } }
ViewFacade combos() メソッド
ビュー コンポーザーは、ビューがレンダリングされるたびにビューのデータをバインドする必要がある場合のコールバック関数またはクラス メソッドです。ユーザーのログイン情報などのビュー。 Composer() を使用すると、ロジックを別の場所に整理できます。
この例では、AppServiceProvider サービス プロバイダーにビュー コンポーザーを登録します。
プロバイダー コードは次のとおりです。
<?php namespace App\Providers; #use Illuminate\Support\Facades\View; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { public function boot() { // 使用基于类方法 // 第一个参数可以指定共享给那个视图,多个视图用数组,共享到全部视图可以用 * // 或者某个目录下所有视图 view()->composer( //'*', 'App\Http\ViewComposers\AuthComposer' //['extman.home, welcome'], 'App\Http\ViewComposers\AuthComposer' ['extman.*'], 'App\Http\ViewComposers\AuthComposer' ); //使用基于回调函数 view()->composer('*',function($view){ $view->with('user',array('name'=>'test','avatar'=>'/path/to/test.jpg')); }); } other code }
新しいサービス プロバイダーを作成してビュー コンポーザーの登録を含める場合は、サービス プロバイダーを追加する必要があります。構成ファイル ビューコンポーザーは config/app.php のプロバイダー配列に登録されています。 AuthComposer@compose メソッドは、extman ディレクトリ内のすべてのビューがレンダリングされるたびに実行されます。
ビューコンポーザークラスを定義します AppHttpViewComposersAuthComposer.php<?php namespace App\Http\ViewComposers; use Illuminate\View\View; use Illuminate\Repositories\UserRepository; class AuthComposer { protected $users; public function __construct(UserRepository $users) { // 依赖注入通过服务容器自动解析... $this->users = $users; } //绑定数据到视图 public function compose(View $view) { $user_info = \Auth::user(); $view->with('motto', $user_info); $view->with('count', $this->users->count()); } }
ビューがレンダリングされる前に、AuthComposer クラスの compose メソッドが呼び出され、IlluminateViewView インスタンスがメソッドに挿入されるため、その with メソッドを使用してデータをバインドできます。景色。
すべてのビュー コンポーザーはサービス コンテナーを通じて解決されるため、ビュー コンポーザーのコンストラクターに注入する必要がある依存関係をタイプヒントで指定できます。
おすすめ関連記事:
LaravelビューとビューComposer_phpインスタンス間の共有データの詳細説明Laravel 5フレームワーク、ビューへのデータ転送方法を学ぶ、laravelフレームワーク以上がlaravel5.5フレームワークでビュー間でデータを共有するにはどうすればよいですか? ビュー間でデータを共有する2つの方法(コードを使用)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









LaravelEloquentモデルの検索:データベースデータを簡単に取得するEloquentormは、データベースを操作するための簡潔で理解しやすい方法を提供します。この記事では、さまざまな雄弁なモデル検索手法を詳細に紹介して、データベースからのデータを効率的に取得するのに役立ちます。 1.すべてのレコードを取得します。 ALL()メソッドを使用して、データベーステーブルですべてのレコードを取得します:useapp \ models \ post; $ post = post :: all();これにより、コレクションが返されます。 Foreach Loopまたはその他の収集方法を使用してデータにアクセスできます。

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

700万のレコードを効率的に処理し、地理空間技術を使用したインタラクティブマップを作成します。この記事では、LaravelとMySQLを使用して700万を超えるレコードを効率的に処理し、それらをインタラクティブなマップの視覚化に変換する方法について説明します。最初の課題プロジェクトの要件:MySQLデータベースに700万のレコードを使用して貴重な洞察を抽出します。多くの人は最初に言語をプログラミングすることを検討しますが、データベース自体を無視します。ニーズを満たすことができますか?データ移行または構造調整は必要ですか? MySQLはこのような大きなデータ負荷に耐えることができますか?予備分析:キーフィルターとプロパティを特定する必要があります。分析後、ソリューションに関連している属性はわずかであることがわかりました。フィルターの実現可能性を確認し、検索を最適化するためにいくつかの制限を設定しました。都市に基づくマップ検索

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

PHPとPythonにはそれぞれ独自の利点があり、プロジェクトの要件に従って選択します。 1.PHPは、特にWebサイトの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンス、機械学習、人工知能に適しており、簡潔な構文を備えており、初心者に適しています。

PHPは、現代のWeb開発、特にコンテンツ管理とeコマースプラットフォームで依然として重要です。 1)PHPには、LaravelやSymfonyなどの豊富なエコシステムと強力なフレームワークサポートがあります。 2)パフォーマンスの最適化は、Opcacheとnginxを通じて達成できます。 3)PHP8.0は、パフォーマンスを改善するためにJITコンパイラを導入します。 4)クラウドネイティブアプリケーションは、DockerおよびKubernetesを介して展開され、柔軟性とスケーラビリティを向上させます。

Laravelはバックエンドロジックでどのように役割を果たしますか?ルーティングシステム、Eloquentorm、認証と承認、イベントとリスナー、パフォーマンスの最適化を通じてバックエンド開発を簡素化および強化します。 1.ルーティングシステムにより、URL構造の定義とリクエスト処理ロジックが可能になります。 2.Eloquentormは、データベースの相互作用を簡素化します。 3.認証および承認システムは、ユーザー管理に便利です。 4.イベントとリスナーは、ゆるく結合したコード構造を実装します。 5.パフォーマンスの最適化により、キャッシュとキューイングを通じてアプリケーションの効率が向上します。

PHPが多くのWebサイトよりも優先テクノロジースタックである理由には、その使いやすさ、強力なコミュニティサポート、広範な使用が含まれます。 1)初心者に適した学習と使用が簡単です。 2)巨大な開発者コミュニティと豊富なリソースを持っています。 3)WordPress、Drupal、その他のプラットフォームで広く使用されています。 4)Webサーバーとしっかりと統合して、開発の展開を簡素化します。
