zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    BestCoder6 1002 Goffi and Squary Partition(hdu 4982) 解题报告
    codeforces 31C Schedule 解题报告
    codeforces 462C Appleman and Toastman 解题报告
    codeforces 460C. Present 解题报告
    BestCoder3 1002 BestCoder Sequence(hdu 4908) 解题报告
    BestCoder3 1001 Task schedule(hdu 4907) 解题报告
    poj 1195 Mobile phones 解题报告
    二维树状数组 探索进行中
    codeforces 460B Little Dima and Equation 解题报告
    通过Sql语句控制SQLite数据库增删改查
  • 原文地址:https://www.cnblogs.com/sdfgdrg/p/10100871.html
Copyright © 2011-2022 走看看