首頁  >  文章  >  後端開發  >  laravel如何向視圖傳遞變數

laravel如何向視圖傳遞變數

小云云
小云云原創
2018-03-15 13:38:551683瀏覽

我們在開發web應用程式當中,通常都不是為了寫靜​​態頁面而生的,我們需要跟資料打交道,那麼這個時候,問題就來了,在一個MVC的框架中,怎麼將資料傳給視圖呢?例如我們要在ArticleController 的index 方法的視圖輸出一個$title 的變量,在Laravel中,有下面幾種常見的方法:

使用with()方法

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

這樣的with ('title',

title 就是值,這樣我們就可以在我們的articles/lists.blade.php 中輸出這個變數了:

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

刷新我們的blog.dev ,就可以看到類似這樣的頁面了:

而在blade引擎中,我們可以這樣輸出變數:

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

其實在blade引擎中, {{ title }} 會被解析為類似 這樣的輸出 a080aaa5757b6aff87eff531122a51a8 ,不過這裡的{{ }} 符號會將資料原樣輸出,例如你將$title 寫成這樣:

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

這時候你用{{ $title }} 輸出,會看到類似下面這樣:

如果你想將$title 作為頁面元素渲染輸出,你需要這樣寫:

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

這裡的{{ }} 和{!! !!} 是blade的最基礎的用法,這兩個我們會用得特別多,後面我會詳細說說blade的用法。

使用這個方法的時候,你可以這樣寫:

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

刷新頁面,你還是會看到一樣的輸出。
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
                                        ]);
    }

在傳遞的數組中:

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

每一個key會在視圖中作為變量,而value 就作為變量的值。 #這裡要寫成{{

introduction }} ,而不是 {{ intro }} 。 使用compact 使用compact是這樣寫的:

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

{{ $introduction }}

compact() 的字串可以就是變數的名字,多個變數名稱用逗號隔開。這時候注意更改視圖的變數輸出。第三種。

相關建議:

Laravel 向視圖傳遞變數的3種方法

#

以上是laravel如何向視圖傳遞變數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn