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文件中为上述视图设置路由:
Route::get('/test', function() { return view('test'); });
步骤3: 访问以下网址,查看视图的输出:
http://localhost:8000/test
步骤4: 输出将如下图所示:
将数据传递给视图
在构建应用程序时,可能需要向视图传递数据,传递一个数组给view()辅助函数。传递一个数组后,我们可以在HTML文件中使用键来获取该键的值。
观察以下示例以了解有关将数据传递给视图的更多信息:
步骤1: 复制以下代码并保存在resources/views/test.php:
<html> <body> <h1><?php echo $name; ?></h1> </body> </html>
步骤2: 在app/Http/routes.php文件中为上述视图设置路由:
Route::get('/test', function() { return view('test',[‘name’=>’Virat Gandhi’]); });
步骤3: key 的值会传递到 test.php 文件,$name 会被那个值替换。
步骤4: 访问以下网址,查看视图的输出。
http://localhost:8000/test
步骤5: 输出将如下图所示:
与所有视图共享数据
我们已经知道如何将数据传递给视图,但有时需要将数据传递给所有视图。 Laravel 有一种叫share()的方法可用于此目的,share()方法接受两个参数,键和值。通常share()方法可以从服务提供者的 boot 方法中调用。
观察以下示例以了解有关与所有视图共享数据的更多信息:
步骤1: 在app/Http/routes.php添加以下代码:
Route::get('/test', function() { return view('test'); }); Route::get('/test2', function() { return view('test2'); });
步骤2: 创建两个视图文件:resources/views/test.php 和 resources/views/test2.php,这是共享数据的两个文件,他们使用相同的代码,代码如下所示:
<html> <body> <h1><?php echo $name; ?></h1> </body> </html>
步骤3: 修改文件app/Providers/AppServiceProvider.php中boot方法的代码,如下所示(在这里,我们使用了共享方法,我们所传递的数据将与所有的视图共享。) :
<?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:访问以下网址:
http://localhost:8000/test http://localhost:8000/test2
步骤5: 输出将如下图所示: