[ Laravel 5.2 ドキュメント ] 基本 -- ビュー
1. 基本的な使用法
ビューにはアプリケーションの HTML コードが含まれており、アプリケーションのコントローラー ロジックとプレゼンテーション ロジックを分離します。ビュー ファイルは、resources/views ディレクトリに保存されます。
ここに簡単なビューがあります:
<!-- 该视图存放 resources/views/greeting.php --><html> <body> <h1>Hello, <?php echo $name; ?></h1> </body></html>
このビューはresources/views/greeting.phpに保存されているので、次のようにグローバルヘルパー関数ビューで返すことができます:
Route::get('/', function () { return view('greeting', ['name' => 'James']);});
ご覧のとおり、ビューに渡します。メソッドの最初のパラメータは、resources/views ディレクトリ内の対応するビュー ファイルの名前で、2 番目のパラメータは、ビュー内のすべての有効なデータを含む配列です。この例では、name 変数を渡し、echo を実行することでビューに表示します。
もちろん、ビューは、「.」を使用して、resources/views のサブディレクトリにネストすることもできます。たとえば、ビューのストレージ パスが resource/views/admin/profile.php である場合、これが可能です。これを実行してください:
return view('admin.profile', $data);
ビューが存在するかどうかを判断する
ビューが存在するかどうかを判断する必要がある場合は、パラメータなしでビューの後にexists メソッドを呼び出すことができます。ビューがディスク上に存在する場合は、true を返します。
if (view()->exists('emails.customer')) { //}
パラメーターを指定せずにビューを呼び出すと、IlluminateContractsViewFactory インスタンスが返されるため、ファクトリ上のすべてのメソッドを呼び出すことができます。
2. データを表示する
ビューにデータを渡す
上の例でわかるように、単純に配列を介してデータをビューに渡すことができます:
return view('greetings', ['name' => 'Victoria']);
この方法でデータを渡す場合、$dataキーと値のペアの配列として、ビュー内で、 などの対応するキーを使用してデータ値にアクセスできます。さらに、 with メソッドを使用して独立したデータ フラグメントをビューに追加することもできます:
$view = view('greeting')->with('name', 'Victoria');
ビュー間でデータを共有する
すべてのビュー間でデータ フラグメントを共有する必要がある場合があります。この場合、ビューの share メソッドを使用できます。 Factory を使用するには、通常、サービス プロバイダーのブート メソッドで share メソッドを呼び出す必要があります。これを AppServiceProvider に追加するか、独立したサービス プロバイダーを生成して保存します。
<?phpnamespace App\Providers;class AppServiceProvider extends ServiceProvider{ /** * 启动所有应用服务 * * @return void */ public function boot() { view()->share('key', 'value'); } /** * 注册服务提供者 * * @return void */ public function register() { // }}
3. View Composer
View Composerレンダリングされるコールバックまたはクラスメソッドです。ビューがレンダリングされるたびにバインドしたいデータがある場合は、View Composer を使用してロジックを別の場所に整理できます。
まず、ビュー Composer をサービスプロバイダーに登録します。IlluminateContractsViewFactory の基になる実装にアクセスするために、Laravel にはデフォルトのビュー Composer ディレクトリが含まれていないことに注意してください。たとえば、AppHttpViewComposers ディレクトリを作成できます:
<?phpnamespace App\Providers;use Illuminate\Support\ServiceProvider;class ComposerServiceProvider extends ServiceProvider{ /** * 在容器中注册绑定. * * @return void * @author http://laravelacademy.org */ public function boot() { // 使用基于类的composers... view()->composer( 'profile', 'App\Http\ViewComposers\ProfileComposer' ); // 使用基于闭包的composers... view()->composer('dashboard', function ($view) { }); } /** * 注册服务提供者. * * @return void */ public function register() { // }}
View Composer の登録を含めるために新しいサービス プロバイダーを作成する場合は、構成ファイル config/app.php のプロバイダー配列にサービス プロバイダーを追加する必要があります。
Composer を登録したので、プロファイル ビューがレンダリングされるたびに ProfileComposer@compose が実行されます。 次に、Composer クラスを定義します。
<?phpnamespace App\Http\ViewComposers;use Illuminate\Contracts\View\View;use Illuminate\Users\Repository as UserRepository;class ProfileComposer{ /** * 用户仓库实现. * * @var UserRepository */ protected $users; /** * 创建一个新的属性composer. * * @param UserRepository $users * @return void */ public function __construct(UserRepository $users) { // Dependencies automatically resolved by service container... $this->users = $users; } /** * 绑定数据到视图. * * @param View $view * @return void */ public function compose(View $view) { $view->with('count', $this->users->count()); }}
ビューがレンダリングされる前に、Composer クラスの compose メソッドが呼び出されます。同時に、IlluminateContractsViewView はこのメソッドを注入し、その with メソッドを使用してデータをビューにバインドできるようにします。
注: すべてのビュー Composer はサービス コンテナを通じて解決されるため、Composer クラスのコンストラクターで必要な依存関係を宣言できます。
Composer を複数のビューに追加する
ビューの配列を最初の引数として Composer メソッドに渡すことで、ビュー Composer を複数のビューに一度に追加できます:
view()->composer( ['profile', 'dashboard'], 'App\Http\ViewComposers\MyViewComposer');
Composer メソッドは * ワイルドカードを受け入れ、Composer を許可しますすべてのビューに追加:
view()->composer('*', function ($view) { //});
4. View Creator
View Creator と View Composer は非常に似ていますが、前者はビューがレンダリングされるまで待つのではなく、ビューがインスタンス化された直後に期限切れになる点が異なります。 create メソッドを使用してビュークリエーターを登録します:
view()->creator('profile', 'App\Http\ViewCreators\ProfileCreator');

ホット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)

ホットトピック









Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。
