laravel向视图传递变量
向视图中传递变量
我们在开发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)中,第一个′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 echotitle }} 会被解析为类似 这样的输出 <?php echotitle; ?> ,不过这里的 {{ }} 符号会将数据原样输出,比如你将 $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 }} ,而不是 {{introduction }} ,而不是 {{intro }} 。
使用compact
使用compact是这样写的:
public function index()
{
$title = '<span style="color: red">文章</span>标题1';
$intro = '文章一的简介';
return view('articles.lists',compact('title','intro'));
}
compact() 的字符串可以就是变量的名字,多个变量名用逗号隔开。这个时候注意更改视图的变量输出。
以上就是Laravel中常用的几种向视图传递变量的方法,选择一种你喜欢的方式并坚持这一种写法就可以了
原文:https://blog.csdn.net/weixin_38112233/article/details/79244513
laravel向视图传递变量的更多相关文章
- Laravel向视图传递变量的两种方法
//方法一 return view('home.user')->with('datas', $datas); //方法二 return view('home.user.my-indent',co ...
- laravel如何向视图传递变量的方法
第一种: public function about(){ $name = "cai" return view("sites.about")->with( ...
- Laravel 5.6 视图用Blade语法传递变量和流程控制if 语句和循环语句
Laravel5.6 视图用Blade语法传递变量和流程控制if 语句和循环语句 Laravel 的 View 部分是内置了两套输出系统:直接输出和使用 Blade 引擎“编译”后输出,默认情况下它们 ...
- laravel如何向视图传递值
1.定义路由 Route::get('demo','DemoController@demo'); 2.定义控制器(内with();方法就是定义传递的值 key=>value)=>" ...
- MVC学习系列3--怎么从控制器向视图传递数据
在MVC中,从控制器到视图,传递数据,可以使用 ViewData 和 ViewBag:同样从视图到控制器,传递数据,可以使用Post,QueryString,或者隐藏域:最后从控制器到控制器,传递数据 ...
- .NET MVC控制器向视图传递数据的四种方式
.NET MVC控制器向视图传递数据的四种方式: 1.ViewBag ViewBag.Mvc="mvc"; 2.ViewData ViewBag["Mvc"] ...
- Linux/Unix shell sql 之间传递变量
灵活结合Linux/Unix Shell 与SQL 之间的变量传输,极大程度的提高了DBA的工作效率,本文针对Linux/Unix shell sql 之间传递变量给出几个简单的示例以供参考. Lin ...
- 【angular】angular如何让传递变量参数+ng-change的使用
HTML: <div class="form-group"> <label class="col-sm-2 control-label"> ...
- 在两个ASP.NET页面之间传递变量【转】
ASP.NET提供了事件驱动编程模型,使开发者简化了应用程序的总体设计,但是这个也造成了它固有的一些问题,例如,在传统的ASP里,我们可以通过使用POST方法很容易地实现页面间传递变量,同样的事情,在 ...
随机推荐
- Js 改变时间格式输出格式
朋友看到的方法,非js原生的 自己封装到 function date2str(x,y) { var z={y:x.getFullYear(),M:x.getMonth()+1,d:x.getDate( ...
- DBCP连接池和事物
工具类案例 public static final String DRIVER = "com.mysql.jdbc.Driver"; public static final Str ...
- Asp.Net Core入门之配置文件
ASP.NET Core配置框架已内建支持 JSON.XML 和 INI 配置文件,内存配置(直接通过代码设置值),环境变量配置等方式配置参数. 本文主要和大家讲一下我们在项目中常用的以配置文件的方式 ...
- Leetcode 416分割等和子集
416. 分割等和子集 已知是个背包问题,由于可以等分为两部分,所以必定是个偶数. 一开始想到的是回溯法 bool helper(vector<int>&nums, int i, ...
- [Python进阶]001.不定参数
不定参数 介绍 元组参数 字典参数 混合 介绍 不定参数用 * 和 ** 定义 不定参数必须在其他所有参数之后 例子:os.path.join 方法就可以写入不定数量的参数 元组参数 定义:*args ...
- BZOJ1003 物流运输 题解
发现\(n,m\)很小,我们可以先把任意\(2\)天的最短路都给求出来,考虑\(DP\),设\(f[i][j]\)表示\(j+1\)~ \(i\)这几天内走的是最短路线的最优方案,显然最优情况下\(j ...
- 基于Basys2开发板的简易电子琴和音乐播放器设计
背景:华中科技大学 电测综合实验 主要功能:Basys2开发板外接一个扬声器(或无源蜂鸣器也可)实现电子琴和音乐播放器的功能.其中由于开发板上只有4个按键,所以电子琴功能只做了4个音调,分别对应于4个 ...
- mybatis精讲(七)--动态sql
目录 常用标签 if元素 choose元素 trim元素 forearch bind元素 在我们传统的开发中我们会通过拼接sql达到数据库的操作.java中的拼接不仅效率低下而且代码很长不易维护.而M ...
- ASP.NET中使用Entity Framework开发登陆注册Demo
这里更多的是当作随身笔记使用,记录一下学到的知识,以便淡忘的时候能快速回顾 当前步骤是该项目的第一部分 第一部分(当前) 第二部分 大完结版本 直接上步骤,有类似的开发登陆注册也可以参考. 登陆注册的 ...
- (Java实现) 光荣的梦想
光荣的梦想 Time Limit:10000MS Memory Limit:65536K Total Submit:110 Accepted:45 Description Prince对他在这片大陆上 ...