与所有视图共享数据
我们已经了解了如何将数据传递给视图,但有时,需要将数据传递给所有视图。Laravel 使这变得更简单。有一种方法叫做share()可以用于此目的。这share()方法将采用两个参数:键和值。通常share()可以从服务提供者的启动方法中调用该方法。我们可以使用任何服务提供商,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− 创建两个视图文件 —test.php和test2.php使用相同的代码。这是将共享数据的两个文件。将以下代码复制到两个文件中。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 − Visit以下网址。
http://localhost:8000/test
http://localhost:8000/test2
步骤 5− 输出将如下图所示。