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 − 访问以下网址以查看该视图的输出。
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()方法将接受两个参数,key和value。通常,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 − 创建两个视图文件 — 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 中修改boot方法的代码,如下所示。(在这里,我们使用了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 − 输出将会显示如下图像所示。