创建视图
视图包含应用的 HTML 代码,并将应用的控制器逻辑和表现逻辑进行分离。视图文件存放在 resources/views 目录中。下面是一个简单的视图示例:
<!-- resources/views/greeting.blade.php 视图文件 --> <html> <body> <h1>Hello, {{ $name }}</h1> </body> </html>
可以通过辅助函数 view ,返回这个视图响应:
Route::get('/', function () { return view('greeting', ['name' => 'jack']); });
view 方法的第一个参数是 resources/views 目录下相应的视图文件的名称,第二个参数是一个数组,表示传递给视图文件的数据。
在这个例子中,我们传递了一个 name 变量,在视图中通过使用 Blade 语法将其显示出来。
当然,视图还可以存放在 resources/views 的子目录中,用“.”号来引用子目录中的视图。
例如,如果视图存放路径是 resources/views/admin/profile.blade.php,那么我们可以这样引用它:
return view('admin.profile', $data);
判断视图是否存在
如果需要判断视图是否存在,可调用 View 门面上的 exists 方法,如果视图存在则返回 true:
use Illuminate\Support\Facades\View; if (View::exists('emails.customer')) { // }
创建第一个有效视图
调用 View 门面上的 first 方法,可以用于创建给定视图数组中的第一个存在的视图:
use Illuminate\Support\Facades\View; return View::first(['custom.admin', 'admin'], $data);
这个功能在应用或扩展包允许视图被自定义或覆盖时很有用。
传递数据到视图
可以简单通过数组方式将数据传递到视图:
return view('greeting', ['name' => 'jack']);
除此之外,还可以通过 with 方法传递独立的数据片段到视图:
$view = view('greeting')->with('name', 'jack');
在视图间共享数据
有时候,我们需要在所有视图之间共享数据片段,这时可以使用视图门面的 share 方法,通常,需要在某个服务提供者的 boot 方法中调用 share 方法,你可以将其添加到 AppServiceProvider 或生成独立的服务提供者来存放这段代码逻辑:
<?php namespace App\Providers; use View; class AppServiceProvider extends ServiceProvider { /** * 启动所有应用服务 * * @return void */ public function boot() { View::share('key', 'value'); } /** * 注册服务提供者 * * @return void */ public function register() { // } }
内容版权声明:除非注明,否则皆为本站原创文章。