搜索
您的当前位置:首页Laravel中常用的几种向视图传递变量的方法

Laravel中常用的几种向视图传递变量的方法

来源:飒榕旅游知识分享网
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 就是值,这样我们就可以在我们的 articles/lists.blade.php 中输出这个变量了:

刷新我们的 blog.dev ,就可以看到类似这样的页⾯了:image

⽽在blade中,我们可以这样输出变量:

{{ $title }}

其实在blade引擎中, {{ $title }} 会被解析为类似 这样的输出 ,不过这⾥的 {{ }} 符号会将数据原样输出,⽐如你将 $title 写成这样:

public function index(){

$title = '⽂章标题1'; return view('articles.lists')->with('title',$title);}

这个时候你⽤ {{ $title }} 输出,会看到类似下⾯这样:image

如果你想将 $title 作为页⾯元素渲染输出,你需要这样写:

{!! $title !!}

image

这⾥的 {{ }} 和 {!! !!} 是blade的最基础的⽤法,这两个我们会⽤得特别多,后⾯我会详细说说blade的⽤法。

直接给view()传参数

使⽤这个⽅法的时候,你可以这样写:

public function index(){

$title = '⽂章标题1'; return view('articles.lists',['title'=>$title]);}

刷新页⾯,你依然会看到⼀样的输出。这⾥需要说明⼀下,如果你传多个变量,⽐如:

public function index(){

$title = '⽂章标题1'; $intro = '⽂章⼀的简介';

return view('articles.lists',[ 'title'=>$title,

'introduction'=>$intro ]);}

在传递的数组中:

[

'title'=>$title,

'introduction'=>$intro]

每⼀个key会在视图中作为变量,⽽ value 就作为变量的值。所以在视图中我们需要这样输出:

{!! $title !!}

{{ $introduction }}

这⾥应写成 {{ $introduction }} ,⽽不是 {{ $intro }} 。

使⽤compact

使⽤compact是这样写的:

public function index(){

$title = '⽂章标题1'; $intro = '⽂章⼀的简介';

return view('articles.lists',compact('title','intro'));}

compact() 的字符串可以就是变量的名字,多个变量名⽤逗号隔开。这个时候注意更改视图的变量输出。

以上就是Laravel中常⽤的⼏种向视图传递变量的⽅法。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top