laravel compact的用法
向视图中传递变量
我们在开发web应用当中,通常都不是为了写静态页面而生的,我们需要跟数据打交道,那么这个时候,问题就来了,在一个MVC的框架中,怎么将数据传给视图呢?比如我们要在 ArticleController 的 index 方法的视图输出一个 $title 的变量,在Laravel中,有下面几种常见的方法:
使用with()方法
public function index()
{
$title = '文章标题1';
return view('articles.lists')->with('title',$title);
}
这样的 with('title',$title) 中,第一个 'title' 就是key,第二个 $title 就是值,这样我们就可以在我们的 articles/lists.blade.php 中输出这个变量了:
<body>
<h1><?php echo $title; ?></h1> </body>
刷新我们的 blog.dev ,就可以看到类似这样的页面了:

而在blade引擎中,我们也可以这样输出变量:
<body>
<h1>{{ $title }}</h1> </body>
其实在blade引擎中, {{ $title }} 会被解析为类似 这样的输出 <?php echo $title; ?> ,不过这里的 {{ }} 符号会将数据原样输出,比如你将 $title 写成这样:
public function index()
{
$title = '<span style="color: red">文章</span>标题1';
return view('articles.lists')->with('title',$title);
}
这个时候你用 {{ $title }} 输出,会看到类似下面这样(红框里):

如果你想将 $title 作为页面元素渲染输出,你需要这样写:
<h1>{!! $title !!}</h1>
结果如下(红框里):

这里的 {{ }} 和 {!! !!} 是blade的最基础的用法,这两个我们会用得特别多,后面我会详细说说blade的用法。
直接给view()传参数
使用这个方法的时候,你可以这样写:
public function index()
{
$title = '<span style="color: red">文章</span>标题1';
return view('articles.lists',['title'=>$title]);
}
刷新页面,你依然会看到一样的输出。这里需要说明一下,如果你传多个变量,比如:
public function index()
{
$title = '<span style="color: red">文章</span>标题1';
$intro = '文章一的简介';
return view('articles.lists',['title'=>$title,'introduction'=>$intro]);
}
在传递的数组中:
['title'=>$title,'introduction'=>$intro]
每一个key会在视图中作为变量,而 value 就作为变量的值。所以在视图中我们需要这样输出:
<body>
<h1>{!! $title !!}</h1>
<p>{{ $introduction }}</p>
</body>
这里应写成 {{ $introduction }} ,而不是 {{ $intro }} 。
使用compact
使用compact是这样写的:
public function index()
{
$title = '<span style="color: red">文章</span>标题1';
$intro = '文章一的简介';
return view('articles.lists',compact('title','intro'));
}
compact() 的字符串可以就是变量的名字,多个变量名用逗号隔开。这个时候注意更改视图的变量输出。
使用外部组装JSON格式的方法
public function times(){
$head = [
'title' => "时间轴_子钦加油个人博客 - 一个站在web前端设计之路的技术员个人博客网站",
'keywords' =>"个人博客,子钦加油个人博客,个人博客模板,子钦",
'description' => "子钦加油个人博客,是一个站在web前端设计之路的程序员个人网站,提供个人博客模板免费资源下载的个人原创网站。",
];
$assign = [
'head' => $head,
];
return view('home.index.time',$assign);
}
其实这种方法就是第二种方法,只是做了个技巧而已
以上就是Laravel中常用的几种向视图传递变量的方法,选择一种你喜欢的方式并坚持这一种写法就可以了,我是使用第最后一种。
laravel compact的用法的更多相关文章
- laravel when 的用法
当你在使用where语句有前提条件时,比如某值为1的时候才执行where子句,否则不执行,这个时候,laravel5.5新出了一个简便方法when($arg,fun1[,fun2]). 具体用法如下: ...
- laravel contains 的用法
最近在学laravel,做一下学习笔记. 1.contains()方法判断集合是否包含给定的项目: ]);var_dump($collection->contains('Desk'));// t ...
- Laravel教程 二:路由,视图,控制器工作流程
Laravel教程 二:路由,视图,控制器工作流程 此文章为原创文章,未经同意,禁止转载. View Controller 上一篇教程我们走了那么长的路,终于把Laravel安装好了,这一篇教程我们就 ...
- 6个项目带你全面掌握Laravel框架
Laravel框架简介: Laravel是一套简洁.优雅的PHP Web开发框架(PHP Web Framework).它可以让你从面条一样杂乱的代码中解脱出来,帮你构建一个完美的网络APP,而且每行 ...
- Laravel 5系列教程二:路由,视图,控制器工作流程
免费视频教程地址https://laravist.com/series/laravel-5-basic 上一篇教程我们走了那么长的路,终于把Laravel安装好了,这一篇教程我们就要进入Laravel ...
- Laravel 中使用 swoole 项目实战开发案例一 (建立 swoole 和前端通信)
1 开发需要环境 工欲善其事,必先利其器.在正式开发之前我们检查好需要安装的拓展,不要开发中发现这些问题,打断思路影响我们的开发效率. 安装 swoole 拓展包 安装 redis 拓展包 安装 la ...
- Laravel-mix 中文文档
镜像地址 : https://segmentfault.com/a/1190000015049847原文地址: Laravel Mix Docs 概览 基本示例 larave-mix 是位于w ...
- php Laravel5.5 表单验证常用的验证规则,以及示例
namespace App\Http\Controllers; use App\Models\Users; use Illuminate\Support\Facades\Validator; use ...
- laravel-hprose(rpc框架)
Laravel-hprose 基于 hprose/hprose-php 开发的Laravel扩展:laravel-hprose 版本要求 Laravel>=5.2 安装 composer req ...
随机推荐
- 每天学点SpringCloud(三):自定义Eureka集群负载均衡策略
相信看了 每天学点SpringCloud(一):简单服务提供者消费者调用,每天学点SpringCloud(二):服务注册与发现Eureka这两篇的同学都了解到了我的套路,没错,本篇博客同样是为了解决上 ...
- win10怎么查看激活到期时间如何看是否永久激活
win10怎么查看激活到期时间如何看是否永久激活 我们知道Windows系统需要激活后才可以使用全部功能,那么你的Windows10激活了吗?如何查看激活时间呢?是不是永久激活的?带着这些问题 ...
- Numpy学习二:数组的索引与切片
1.一维数组索引与切片#创建一维数组arr1d = np.arange(10)print(arr1d) 结果:[0 1 2 3 4 5 6 7 8 9] #数组的索引从0开始,通过索引获取第三个元素a ...
- 如何解决微信小程序界面适配问题-引用-生命周期回调函数-优化机制-样式引入
如何解决微信小程序界面适配问题 .wxss page{ height: 100%; width:750rpx; } this.setData({ imageWidth: wx.getSystemInf ...
- 树莓派GPIO口的使用
树莓派的优势在于Liunx操作系统加GPIO口,其中IO口时物联网组成中不可缺少的,高低电平的控制是很有必要的存在,再加有python的支持,玩转GPIO相对就容易多了 管脚编号 BCM: 编号侧重 ...
- Ansible--Ad-Hoc
什么是Ad-Hoc (这其实是一个概念性的名字,是相对于写Ansible playbook来说的.类似于在命令行敲入shell命令和写shell scripts两者之间的关系)... 如果我们敲入一些 ...
- Java 容器源码分析之 TreeMap
TreeMap 是一种基于红黑树实现的 Key-Value 结构.在使用集合视图在 HashMap 中迭代时,是不能保证迭代顺序的: LinkedHashMap 使用了双向链表,保证按照插入顺序或者访 ...
- 通过keras例子理解LSTM 循环神经网络(RNN)
博文的翻译和实践: Understanding Stateful LSTM Recurrent Neural Networks in Python with Keras 正文 一个强大而流行的循环神经 ...
- mysql滑动聚合
滑动聚合是按顺序对滑动窗口范围内的数据进行聚合的操作.下累积聚合不同,滑动聚合并不是统计开始计算的位置到当前位置的数据. 这里以统计最近三个月中员工第月订单情况为例来介绍滑动聚合. 滑动聚合和累积聚合 ...
- Apache-httpd.conf详解
## Apache服务器主配置文件. 包括服务器指令的目录设置.# 详见 <URL:http://www.apache.org/docs/> ## 请在理解用途的基础上阅读各指令.## ...