Home >Backend Development >PHP Tutorial >How to pass variables to view in laravel

How to pass variables to view in laravel

小云云
小云云Original
2018-03-15 13:38:551733browse

When we develop web applications, we usually do not write static pages. We need to deal with data. So at this time, the question arises. In an MVC framework, how to pass data to the view? ? For example, we want to output a $title variable in the view of the index method of ArticleController. In Laravel, there are several common methods:

Use the with() method

 public function index()
    {
        $title = '文章标题1';        
        return view('articles.lists')->with('title',$title);
    }

such with ('title',

title is the value, so we can output this in our articles/lists.blade.php Variables:

<body><h1><?php echo $title; ?></h1></body>

Refresh our blog.dev, you can see a page like this:

In the blade engine, we can output variables like this:

<body><h1>{{ $title }}</h1></body>

In fact, in the blade engine, {{ ##title }} will be parsed into output similar to this 2d0eff6e7f839c873f09a818d966e35c , but the {{ }} symbol here will output the data as it is. For example, if you write $title like this:

 public function index()
    {
        $title = &#39;<span style="color: red">文章</span>标题1&#39;;        return view(&#39;articles.lists&#39;)->with(&#39;title&#39;,$title);
    }

At this time you Use {{ $title }} to output, and you will see something like the following:

If you want to render $title as a page element, you need to write like this:

<h1>{!! $title !!}</h1>

Here {{ }} and {!! !!} are the most basic usage of blade. We will use these two very often. I will talk about the usage of blade in detail later.

Pass parameters directly to view().

When using this method, you can write like this:

public function index()
    {
        $title = &#39;<span style="color: red">文章</span>标题1&#39;;        return view(&#39;articles.lists&#39;,[&#39;title&#39;=>$title]);
    }

Refresh the page, you will still see the same output. It needs to be explained here, if you pass multiple variables, such as:

public function index()
    {
        $title = &#39;<span style="color: red">文章</span>标题1&#39;;        $intro = &#39;文章一的简介&#39;;        return view(&#39;articles.lists&#39;,[                                        &#39;title&#39;=>$title,                                        &#39;introduction&#39;=>$intro
                                        ]);
    }

In the passed array:

[&#39;title&#39;=>$title,&#39;introduction&#39;=>$intro]

Each key will be used as a variable in the view, and value will be used as the value of the variable, so in the view we need to output like this:

<h1>{!! $title !!}</h1>

{{ $introduction }}

##. #This should be written as {{

introduction }} instead of {{ intro }}.

Using compact

Using compact is written like this:

 public function index()
    {
        $title = &#39;<span style="color: red">文章</span>标题1&#39;;        
        $intro = &#39;文章一的简介&#39;;        
        return view(&#39;articles.lists&#39;,compact(&#39;title&#39;,&#39;intro&#39;));
        }

The string of compact() can be the name of the variable, and multiple variable names are separated by commas. At this time, pay attention to changing the variable output of the view.

The above are several methods commonly used in Laravel to pass variables to the view. Just choose a method you like and stick to this way of writing. I use The third type.

Related recommendations:


Laravel 3 ways to pass variables to the view

The above is the detailed content of How to pass variables to view in laravel. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn