Laravel-views
Laravel-ビュー
MVCフレームワークでは、文字「“ V” 」は「ビュー」を表します。 アプリケーションロジックとプレゼンテーションロジックを分離します。 ビューは *resources/views ディレクトリに保存されます。 通常、ビューには、アプリケーションによって提供されるHTMLが含まれます。
例
ビューについての詳細を理解するには、次の例をご覧ください-
ステップ1 *-次のコードをコピーして、 *resources/views/test.php に保存します
<html>
<body>
<h1>Hello, World</h1>
</body>
</html>
ステップ2 *- *app/Http/routes.php ファイルに次の行を追加して、上記のビューのルートを設定します。
*app/Http/routes.php*
Route::get('/test', function() {
return view('test');
});
- ステップ3 *-次のURLにアクセスして、ビューの出力を確認します。
http://localhost:8000/test
- ステップ4 *-出力は次の画像のように表示されます。
ビューにデータを渡す
アプリケーションの構築中に、ビューにデータを渡す必要がある場合があります。 ヘルパー関数を表示する配列を渡します。 配列を渡した後、キーを使用して、HTMLファイルでそのキーの値を取得できます。
例
ビューへのデータの受け渡しについてさらに理解するには、次の例をご覧ください-
ステップ1 *-次のコードをコピーして、 *resources/views/test.php に保存します
<html>
<body>
<h1><?php echo $name; ?></h1>
</body>
</html>
ステップ2 *- *app/Http/routes.php ファイルに次の行を追加して、上記のビューのルートを設定します。
*app/Http/routes.php*
Route::get('/test', function() {
return view('test',[‘name’=>’Virat Gandhi’]);
});
- ステップ3 *-キー名の値はtest.phpファイルに渡され、$ nameはその値に置き換えられます。
- ステップ4 *-次のURLにアクセスして、ビューの出力を確認します。
http://localhost:8000/test
- ステップ5 *-出力は次の画像のように表示されます。
すべてのビューでデータを共有する
ビューにデータを渡す方法を見てきましたが、すべてのビューにデータを渡す必要がある場合があります。 Laravelはこれを簡単にします。 この目的に使用できる* share()というメソッドがあります。 * share()*メソッドは、キーと値の2つの引数を取ります。 通常、 share()メソッドは、サービスプロバイダーのbootメソッドから呼び出すことができます。 任意のサービスプロバイダー、 *AppServiceProvider または独自のサービスプロバイダーを使用できます。
例
すべてのビューでデータを共有する方法について詳しく理解するには、次の例をご覧ください-
ステップ1 *- *app/Http/routes.php ファイルに次の行を追加します。
*app/Http/routes.php*
Route::get('/test', function() {
return view('test');
});
Route::get('/test2', function() {
return view('test2');
});
ステップ2 *-2つのビューファイルを作成します。同じコードで *test.php と test2.php を作成します。 これらは、データを共有する2つのファイルです。 両方のファイルに次のコードをコピーします。 resources/views/test.php&resources/views/test2.php
<html>
<body>
<h1><?php echo $name; ?></h1>
</body>
</html>
ステップ3 *-以下に示すように、ファイル *app/Providers/AppServiceProvider.php のブートメソッドのコードを変更します。 (ここではshareメソッドを使用しており、渡したデータはすべてのビューで共有されます。) app/Providers/AppServiceProvider.php
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider {
/**
*Bootstrap any application services.
*
*@return void
*/
public function boot() {
view()->share('name', 'Virat Gandhi');
}
/**
*Register any application services.
*
*@return void
*/
public function register() {
//
}
}
- ステップ4 *-*次のURLにアクセスしてください。
http://localhost:8000/test
http://localhost:8000/test2
- ステップ5 *-出力は次の画像のように表示されます。