Laravel - 视图

  • 简述

    在MVC框架中,字母“V”代表Views。它将应用程序逻辑和表示逻辑分开。视图存储在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()方法将采用两个参数:键和值。通常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如下所示。(这里,我们使用了 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() {
          //
       }
    }
    
    步骤 4Visit以下网址。
    
    http://localhost:8000/test
    http://localhost:8000/test2
    
    步骤 5− 输出将如下图所示。
    维拉·甘地