创建视图
视图包含应用的 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 或生成独立的服务提供者来存放这段代码逻辑:
<"htmlcode"><"htmlcode"><"htmlcode">View::composer( ['profile', 'dashboard'], 'App\Http\ViewComposers\MyViewComposer' ); composer 方法还支持 * 通配符,允许将一个 Composer 添加到所有视图: View::composer('*', function ($view) { // });视图创建器
视图创建器和视图 Composer 非常类似,不同之处在于前者在视图实例化之后立即失效而不是等到视图即将渲染。
使用 View 门面的 creator 方法即可注册一个视图创建器:
View::creator('profile', 'App\Http\ViewCreators\ProfileCreator');以上这篇Laravel5.5 视图 - 创建视图和数据传递示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
富贵资源网 Design By www.hznty.com
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?