3. 视图数据View Data和Balde模版 - Laravel从零开始教程

从零开始学laravel教程目录

我们经常需要将数据传递到视图层显示,Laravel中是如何做到这点的呢?那我们就要先了解下Balde模版.

我们现在还是进入到我们的Laravel52的项目中,用sublime打开它:

➜ cd /usr/local/var/www/Laravel52
➜ subl .

进入到route.php文件中,上一节我们只是显示一个静态的视图层,如下:

Route::get('/', function () {return view('welcome');
});

下面我们新建一个$users的数组,然后将$users数组中的数据传递到视图中去,Laravel提供了多种方法将数据传递到视图,我们先来看第一种方法,将一个数组作为第二个参数传入到view()函数中。

Route::get('/', function () {$user = ['Zhoujiping', 'Kuker Chou'];// 设置$user数组的key为users, 以数组的形式做为第二个参数传递给// view()函数,视图层就能通过users这个key拿到$users数组中的数据了return view('welcome', ['users' => $users]);
});

还可以对上面的写法进行简化下,我们知道php自带有一个compact()函数,这个函数能够创建一个包含变量名和该变量名对应的值的数组,如:

$user = 'zhoujiping';
print_r(compact('user'));// 上面的语句通过compact(),转化成的结果是['user' => 'zhoujiping']$users = ['Zhoujiping', 'Kuker Chou'];
print_r(compact('users'));// 上面的语句通过上面的语句通过compact(),转化成的结果是
// ['user' => ['Zhoujiping', 'Kuker Chou']]

ok, 现在我们就能更改我们的代码如下:

Route::get('/', function () {$users = ['Zhoujiping', 'Kuker Chou'];return view('welcome', compact('users'));
});

如果我们有多个变量要传递,我们可以这么写:

Route::get('/', function () {$country = 'China';$users = ['Zhoujiping', 'Kuker Chou'];$ages = [10, 20];return view('welcome', compact('country', 'users', 'ages'));
});

嗯,像上面这样写,代码是不是干净很多了,否则如果变量过多,你就需要传递一个长长的二维数组作为view()的第二个参数,代码的可读性就太差了。

除了上面的传递参数的方法,Laravel还提供了with()函数,我们可以这么写:

Route::get('/', function () {$users = ['Zhoujiping', 'Kuker Chou'];return view('welcome')->with('users', $users);
});

我们也可以讲with('users', $users)这里的'user'健和with凭借在一起,将'users'的首字母变大写, 变成withUsers($user),我们看下整体的代码:

Route::get('/', function () {$users = ['Zhoujiping', 'Kuker Chou'];// 使用with()来传参数return view('welcome')->with('users', $users);
});
Route::get('/', function () {$users = ['Zhoujiping', 'Kuker Chou'];// 使用with+自定义的键名(如:users),拼接成withUsers()来传参数return view('welcome')->withUsers($users);
});

如果有多个变量要传递,你可以链式调用```with()```,如:
return view('welcome')->with('users', $users)->with('country', $country)->with('ages', $ages);

好了,传递数据给view层的方法就是上面几种了,我比较喜欢使用```compact()```这种类型,下面我们把route.php中的代码改回成下面这样:
Route::get('/', function () {$users = ['Zhoujiping', 'Kuker Chou'];return view('welcome', compact('users'));
});

下面我们去视图层显示数据,我们打开```resources/views/welcome.balde.php```文件,我们将```<body> ... </body>```中的内容删除,然后我们先写一下原生的php的写法,之后我们再使用```blade```模版,我们可以对比看下balde是多么的易用,我们先使用php原生的语句来输出我们的```$users```数据, <body>中的代码如下:
<body><?php foreach ($users as $user) { ?><li><?= $user; ?></li><?php } ?>
</body>

像上面这样写是没有问题的,视图层能够正常的加载并渲染数据,不过如果都是这么去写的话,那真的是件痛苦的事,现在我们就用laravel自带的```balde```模版的写法来更改一下:
<body>@foreach ($users as $user)<li>{{ $user }}</li>@endforeach
</body>

像上面这样写,是不是就感觉代码清晰很多了,而且balde模版的语法非常容易猜到,基本上都是在php已有的关键字前面加上```@```符号作为开头,以```@end```加上关键字作为结尾,比如说上面的数组循环:
@foreach ($users as $user)...
@endforeach

比如说判断语句:
@if()@else@endif
在balde模版中如果要解析变量,我们可以用两对大的花括弧```{{ $user }}```,至于blade的更多语法和用法,你可以去翻一翻laravel的官方文档,如果你没有时间看文档,立马就要使用laravel,也没有什么关系,边做边查询文档就行,不过空闲的时候,你还是等把文档看它个至少7,8遍吧。本节到这里结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/292235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

简直不敢相信!这个史上最被低估的学科,看完竟瑟瑟发抖!

▲ 点击查看历史&#xff0c;无疑是大众参与度较高的知识性学科之一&#xff0c;既没有艰深的原理和公式&#xff0c;也不需要较高的欣赏能力。不仅门槛低&#xff0c;而且具有故事性&#xff0c;容易形成话题&#xff0c;茶余饭后&#xff0c;几乎每个人、每个孩子都能谈论几句…

一款强大的Kubernetes API流量查看神器

点击上方蓝字关注 &#x1f446;&#x1f446;大家好&#xff0c;我是小碗汤&#xff0c;今天分享一个k8s流量查看器~mizu。mizu 是为 Kubernetes 提供的一个简单而强大的 API 流量查看器&#xff0c;可以查看微服务之间的所有 API 通信&#xff0c;以帮助调试和排除故障。相当…

辉光UIView的category

辉光UIView的category 本人视频教程系类 iOS中CALayer的使用 效果如下&#xff1a; 源码&#xff1a; UIViewGlowView.h 与 UIViewGlowView.m // // UIViewGlowView.h // YouXianClock // // Created by YouXianMing on 14-12-21. // Copyright (c) 2014年 YouXianMing. …

javascript 动态创建表格

<html><head><script>function createTable(rows,lines){this.rowsrows;this.lineslines;var Bodydocument.getElementById(body);var Tabledocument.createElement(table);//创建table标签元素Table.setAttribute(border,1);//给table标签添加其他属性for(v…

linux c之加入了加入原文件 math.h调用abs()函数出现implicit declaration of function错误

今天在vim 写C语言的时候 代码我已经导入了#include<math.h> 但是当我调用ads()函数的时候出现了下面错误 解决办法&#xff1a; 把abs函数改写成fabs函数就行&#xff0c;然后去网上找原因&#xff0c;发现fabs是求浮点数的&#xff0c;ads求整形的&#xff0c;以后在…

你的女神今日结婚了!!!你失恋了......

1 新垣结衣结了婚▼2 我和朋友最近的聊天内容&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼3 白粥盖浇饭&#xff1f;&#xff1f;&#xff1f;&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼4 中国人的辈分可以复杂到什么程度&#xff1f;&#xff08…

我的技术回顾那些与ABP框架有关的故事-2017年

推荐阅读&#xff1a;我的技术回顾那些与ABP框架有关的故事-2015年从ABP框架国内社区发展回顾.NET技术变迁-2016年从2022年来回顾ABP框架&#xff0c;我们会发现无论是商业模式还是架构设计思路&#xff0c;如果没有良好的商业模式的话&#xff0c;ABP框架很容易进入难产的状态…

Camera360与全球1.8亿用户共同创造更美的照片

Camera360是成都品果科技有限公司推出的基于IOS、Windows Phone和安卓系统的功能强大的手机摄影软件。能拍摄出不同风格&#xff0c;不同特效的照片&#xff0c;同时具有互联网分享功能。Camera360在全球拥有1.8亿用户&#xff0c;国外0.95亿&#xff0c;国内0.85亿&#xff0c…

八皇后问题(一)

问题描述: 要在8*8的国际象棋棋盘中放8个皇后,使任意两个皇后都不能互相吃掉。规则是皇后能吃掉同一行、同一列、同一对角线的棋子。如下图即是两种方案: 思路: 比如我们搞个数组,数组的下表表示多少行,然后数值表示多少列,比如a[4] = 5,意思就代表第四行,第五列 首先…

linux shell 嵌套expect 与服务器交互脚本

2019独角兽企业重金招聘Python工程师标准>>> 我们与服务器进行交互是该用expect 脚本的&#xff0c;用 “/usr/bin/expect <<-EOF” 来开启expect 脚本 用spawn 来开启一个新的进程 expect 来接受命令&#xff0c;send来发送交互命令 结束用 EOF来over expect…

SkyWalking集成与案例

今天我们通过代码的形式来了解下&#xff0c;如何在项目中使用Skywalking。前几篇文章可以参考&#xff1a;《学习Skywalking 搭建篇》《Skywalking执行效果 多图篇》《Skywalking的ES索引 收藏篇》今天说说代码篇。先说下比较常见的开源 APM 如下&#xff1a;CAT&#xff1…

Windows Azure 安全最佳实践 - 第 6 部分:Azure 服务如何扩展应用程序安全性

多种 Windows Azure服务可以帮助您将应用程序安全性扩展到云。 有三种服务可提供多个提供程序之间的身份标识映射、内部部署数据中心间的连接和相互发送消息的应用程序功能&#xff08;无论应用程序位于何处&#xff09;。 使用Windows Azure Active Directory&#xff0c;您…

Windows Server 2012活动目录基础配置与应用(新手教程)之3---将客户机加入到指定域...

在WIN 2012服务器上安装AD后&#xff0c;WIN2012就从普通的服务器变成了域控制器。一个域也就产生了。但遗憾的是&#xff0c;目前这个域的规模还很小&#xff0c;只有DC这一台主机-------光杆司令&#xff01;&#xff01;下面尝试扩大域的规模&#xff0c;将客户机加入到域。…

论物理学界的神预言

全世界只有3.14 % 的人关注了爆炸吧知识一沙见世界 一花窥天堂手心握无限 须臾纳永恒杨振宁曾说读上面的四句诗可以感受到物理的美但物理的美不止于此物理还有一种庄严美一种神秘美一种初窥宇宙奥秘的畏惧美物理就是如此的迷人任何语言在它的面前都很贫瘠数学让人摆脱了愚昧而…

聊一聊如何用C#轻松完成一个SAGA分布式事务

背景 银行跨行转账业务是一个典型分布式事务场景&#xff0c;假设 A 需要跨行转账给 B&#xff0c;那么就涉及两个银行的数据&#xff0c;无法通过一个数据库的本地事务保证转账的 ACID &#xff0c;只能够通过分布式事务来解决。市面上使用比较多的分布式事务框架&#xff0c…

梯度消失和梯度爆炸_知识干货-动手学深度学习-05 梯度消失和梯度爆炸以及Kaggle房价预测...

梯度消失和梯度爆炸考虑到环境因素的其他问题Kaggle房价预测梯度消失和梯度爆炸深度模型有关数值稳定性的典型问题是消失&#xff08;vanishing&#xff09;和爆炸&#xff08;explosion&#xff09;。当神经网络的层数较多时&#xff0c;模型的数值稳定性容易变差。PyTorch的默…

Js中 关于top、clientTop、scrollTop、offsetTop的用法

2019独角兽企业重金招聘Python工程师标准>>> Js中 关于top、clientTop、scrollTop、offsetTop的用法 网页可见区域宽&#xff1a; document.body.clientWidth; 网页可见区域高&#xff1a; document.body.clientHeight; 网页可见区域宽&#xff1a; document.body.…

UVa 1639 (期望) Candy

题意&#xff1a; 两个盒子里各有n颗糖&#xff0c;每天有p的概率从第一个盒子里取一颗糖&#xff0c;1-p的概率从第二个盒子里去一颗糖。直到某一天打开某个盒子忽然发现没糖了&#xff0c;求另一个盒子里剩余糖果数的期望。 分析&#xff1a; 紫书上面已经分析的很清楚了&…

C#中的串口通信SerialPort

前言大家好&#xff0c;我是阿辉。今天这篇文章带大家学习下C#中的串口通讯。在日常的开发工作中&#xff0c;如果工作内容是CS方向的同学应该很容易接触到串口通讯方面的业务需求。那么也就很容易想到C#中SerialPort类&#xff0c;它就是专门来处理串口通讯相关的。了解什么是…