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 −输出将如下图所示显示。

Understanding Views

将数据传递给视图

在构建应用程序时,可能需要将数据传递给视图。将数组传递给视图辅助函数。传递数组后,我们可以使用该键在 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 − 键 name 的值将传递给 test.php 文件,并且 $name 将由该值替换。

步骤 4 − 访问以下 URL 以查看视图的输出。

http://localhost:8000/test

步骤 5 − 输出将如下图所示显示。

Virat Gandhi

与所有视图共享数据

我们已经了解了如何将数据传递给视图,但有时需要将数据传递给所有视图。Laravel 使这变得更简单。有一个名为 share() 的方法可用于此目的。 share() 方法将接受两个参数,即 key 和 value。通常,可以从服务提供者的 boot 方法调用 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.phptest2.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 − 输出将如下图所示。

Virat Gandhi