亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Laravel 5 系列教程三:視圖變量傳遞和Blade

jindong / 1292人閱讀

摘要:所以在視圖中我們需要這樣輸出這里應(yīng)寫(xiě)成,而不是。這個(gè)時(shí)候注意更改視圖的變量輸出。

原文來(lái)自: https://jellybool.com/post/programming-with-laravel-5-blade-views-with-var

系列文章: http://segmentfault.com/blog/jellybool

免費(fèi)視頻教程地址 https://laravist.com/series/laravel-5-basic

上一篇我們簡(jiǎn)單地說(shuō)了Router,Views和Controllers的工作流程,這一次我就按照上一篇的計(jì)劃,來(lái)說(shuō)說(shuō)下面幾個(gè)內(nèi)容:

向視圖中傳遞變量

Blade模板的用法

原來(lái)的數(shù)據(jù)庫(kù)配置放下一節(jié)了

向視圖中傳遞變量

我們?cè)陂_(kāi)發(fā)web應(yīng)用當(dāng)中,通常都不是為了寫(xiě)靜態(tài)頁(yè)面而生的,我們需要跟數(shù)據(jù)打交道,那么這個(gè)時(shí)候,問(wèn)題就來(lái)了,在一個(gè)MVC的框架中,怎么將數(shù)據(jù)傳給視圖呢?比如我們要在 ArticleControllerindex 方法的視圖輸出一個(gè) $title 的變量,在Laravel中,有下面幾種常見(jiàn)的方法:

使用with()方法
 public function index()
    {
        $title = "文章標(biāo)題1";
        return view("articles.lists")->with("title",$title);
    }

這樣的 with("title",$title) 中,第一個(gè) "title" 就是key,第二個(gè) $title 就是值,這樣我們就可以在我們的 articles/lists.blade.php 中輸出這個(gè)變量了:


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

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


{{ $title }}

其實(shí)在blade引擎中, {{ $title }} 會(huì)被解析為類似 這樣的輸出 ,不過(guò)這里的 {{ }} 符號(hào)會(huì)將數(shù)據(jù)原樣輸出,比如你將 $title 寫(xiě)成這樣:

 public function index()
    {
        $title = "文章標(biāo)題1";
        return view("articles.lists")->with("title",$title);
    }

這個(gè)時(shí)候你用 {{ $title }} 輸出,會(huì)看到類似下面這樣:

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

{!! $title !!}

這里的 {{ }}{!! !!} 是blade的最基礎(chǔ)的用法,這兩個(gè)我們會(huì)用得特別多,后面我會(huì)詳細(xì)說(shuō)說(shuō)blade的用法。

直接給view()傳參數(shù)

使用這個(gè)方法的時(shí)候,你可以這樣寫(xiě):

public function index()
    {
        $title = "文章標(biāo)題1";
        return view("articles.lists",["title"=>$title]);
    }

刷新頁(yè)面,你依然會(huì)看到一樣的輸出。這里需要說(shuō)明一下,如果你傳多個(gè)變量,比如:

 public function index()
    {
        $title = "文章標(biāo)題1";
        $intro = "文章一的簡(jiǎn)介";
        return view("articles.lists",[
                                        "title"=>$title,
                                        "introduction"=>$intro
                                        ]);
    }

在傳遞的數(shù)組中:

[
"title"=>$title,
"introduction"=>$intro
]

每一個(gè)key會(huì)在視圖中作為變量,而 value 就作為變量的值。所以在視圖中我們需要這樣輸出:


{!! $title !!}

{{ $introduction }}

這里應(yīng)寫(xiě)成 {{ $introduction }} ,而不是 {{ $intro }} 。

使用compact

使用compact是這樣寫(xiě)的:

 public function index()
    {
        $title = "文章標(biāo)題1";
        $intro = "文章一的簡(jiǎn)介";
        return view("articles.lists",compact("title","intro"));
    }

compact() 的字符串可以就是變量的名字,多個(gè)變量名用逗號(hào)隔開(kāi)。這個(gè)時(shí)候注意更改視圖的變量輸出。

以上就是Laravel中常用的幾種向視圖傳遞變量的方法,選擇一種你喜歡的方式并堅(jiān)持這一種寫(xiě)法就可以了,我是使用第三種。

Blade的基本用法

上面的內(nèi)容介紹了一點(diǎn)點(diǎn)blade的語(yǔ)法,這里我們?cè)俳y(tǒng)一介紹blade,說(shuō)說(shuō)下面幾個(gè)比較常用的:

@yield()
@extends()
@if() and @unless()
@foreach()

@yield()@extends() 通常會(huì)結(jié)合者使用,實(shí)現(xiàn)我們通常所說(shuō)的layouts布局:就是在web開(kāi)發(fā)的過(guò)程中,我們將一些公用的部分如 headerfooter 等直接放在一個(gè)視圖文件中,然后在使用的使用直接繼承 (使用@extends) 就可以了,比如我們?cè)?resources/views/ 文件夾之下創(chuàng)建一個(gè) app.blade.php




    
    
    
    Laravel 5 教程
    
    


@yield("content")

寫(xiě)上這么一些內(nèi)容,其中css這個(gè) href="/css/all.css" ,需要我們手動(dòng)在 public/ 文件夾之下創(chuàng)建css/文件夾,并創(chuàng)建all.css這個(gè)文件,對(duì)于js的src="/js/all.js"也是同理,這兩個(gè)文件是為了后面的頁(yè)面美化而做的提前準(zhǔn)備。

注意到@yield("content")這個(gè)語(yǔ)法,這里就是說(shuō),這里有一個(gè)content的內(nèi)容區(qū)域,如果某個(gè)頁(yè)面繼承了這個(gè)app.blade.php,然后那個(gè)頁(yè)面就可以動(dòng)態(tài)改變@yield("content")的內(nèi)容了。比如我們?cè)?b>articles/lists.blade.php中,我們繼承一下app.blade.php:

@extends("app")
@section("content")

{!! $title !!}

{{ $intro }}

@endsection

這里的第一行@extends("app")就是聲明這個(gè)頁(yè)面繼承于app.blade.php,也就是我們的articles/lists.blade.php可以使用到all.cssall.js文件,然后@section("content")就是對(duì)于app.blade.php@yield("content"),表明就是:在渲染加載articles/lists.blade.php的時(shí)候,@yield("content")這部分內(nèi)容會(huì)被替換為下面的內(nèi)容:

{!! $title !!}

{{ $intro }}

@if()通常是用于在視圖中根據(jù)某些條件來(lái)判斷是否該顯示某些內(nèi)容,比如我們可以很“無(wú)聊”地試試這樣:

public function index()
    {
        $first = "jelly";
        $last = "bool";
        return view("articles.lists",compact("first","last"));
    }

在views文件中,我們使用一下@if():

@extends("app")
@section("content")
 @if($first == "jellybool")
 

{{ $first }}

@else

{{ $last }}

@endif @endsection

刷新一下就可以看到頁(yè)面的輸出,為$last的值。

上面的@if(),還有一個(gè)可以使用的標(biāo)簽就是@unless(),@unless()就可以理解為 if( ! ),就是if not 這樣理解就OK。

@foreach()用于循環(huán)輸出變量,比如:

public function index()
    {
        $first = ["jelly","bool"];
        return view("articles.lists",compact("first"));
    }

我們傳一個(gè)數(shù)組給視圖,然后,我們就可以使用@foreach()循環(huán)輸出了:

@extends("app")
@section("content")
@foreach( $first as $name)
    

{{ $name }}

@endforeach @endsection

刷新一下頁(yè)面,就可以看到循環(huán)的結(jié)果了:

blade的更多知識(shí),可以參考文檔:

http://laravel.com/docs/5.1/blade

下一節(jié)

貌似上面配置數(shù)據(jù)庫(kù)鏈接之后還沒(méi)有用到,不用著急,我接下來(lái)的一篇會(huì)具體說(shuō)說(shuō)Eloquent的用法,這個(gè)在Laravel中是很有代表性的部分,希望你可以學(xué)到一點(diǎn)東西。

Happy Hacking

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/21076.html

相關(guān)文章

  • Laravel 5系列教程五:MVC的基本流程

    摘要:原文來(lái)自免費(fèi)視頻教程地址期間受到很多私事影響,終于還是要好好寫(xiě)寫(xiě)的教程了。我們來(lái)實(shí)現(xiàn)這個(gè)功能顯示文章詳情通過(guò)文章展示來(lái)快速體驗(yàn)上面的流程注冊(cè)路由來(lái)到中,我們?cè)黾右粋€(gè)路由上面的路由指定我們需要加載中的方法。 原文來(lái)自: https://jellybool.com/post/programming-with-laravel-5-model-controller-view-basic-wor...

    mrcode 評(píng)論0 收藏0
  • Laravel 5 系列教程二:路由,視圖,控制器工作流程

    摘要:但是不用擔(dān)心,我們后續(xù)的教程會(huì)陸續(xù)講解相關(guān)的內(nèi)容。所以上面的路由注冊(cè)其實(shí)就是負(fù)責(zé)解決訪問(wèn)的時(shí)候的響應(yīng)。 原文來(lái)自:https://jellybool.com/post/programming-with-laravel-5-routers-views-controllers-workflow 免費(fèi)視頻教程地址 https://laravist.com/series/laravel-5-b...

    awesome23 評(píng)論0 收藏0
  • laravel5.5手寫(xiě)教程3的基于資源路由的CURD操作(適合初學(xué)者)

    摘要:新增一篇新聞新增失敗輸入不符合要求請(qǐng)輸入標(biāo)題請(qǐng)輸入內(nèi)容新增文章上面代碼中的是為了防攻擊的,每個(gè)表單都必須存在。 本文我將結(jié)合簡(jiǎn)單例子,完成laravel框架下的增刪改查,希望會(huì)對(duì)大家有所幫助。在進(jìn)行之前,大家應(yīng)該保證自己的數(shù)據(jù)庫(kù)鏈接無(wú)誤,artisan命令能正常使用,路由鏈接無(wú)問(wèn)題。 一、創(chuàng)建控制器、路由避免影響其他路由,我們先注釋掉之前聯(lián)系時(shí)編寫(xiě)的所有路由。因?yàn)樯弦徽挛覀円呀?jīng)學(xué)會(huì)建立...

    olle 評(píng)論0 收藏0
  • Laravel 5.4 入門系列 2. 路由與視圖

    摘要:路由與視圖主要知識(shí)點(diǎn)從路由到視圖的基本流程數(shù)據(jù)傳遞我們來(lái)看看第一講最后的頁(yè)面是怎么出來(lái)的?,F(xiàn)在,再次訪問(wèn),變成了我們定義的內(nèi)容。 2. 路由與視圖 主要知識(shí)點(diǎn): 從路由到視圖的基本流程 數(shù)據(jù)傳遞 我們來(lái)看看第一講最后的頁(yè)面是怎么出來(lái)的。先來(lái)看看路由: // /routes/web.php Route::get(/, function () { return view(wel...

    dockerclub 評(píng)論0 收藏0
  • laravel框架應(yīng)用composer擴(kuò)展包開(kāi)發(fā)

    摘要:官方地址是目前最流行的框架,發(fā)展勢(shì)頭迅猛,應(yīng)用非常廣泛,有豐富的擴(kuò)展包可以應(yīng)付你能想到的各種應(yīng)用場(chǎng)景,框架思想前衛(wèi),跟隨時(shí)代潮流,提倡優(yōu)雅代碼,自稱為工匠,其中的模板引擎容器以及擴(kuò)展包為業(yè)務(wù)的開(kāi)發(fā)提供了極大的便利。 laravel5.5+ laravel官方地址 laravel是目前最流行的php框架,發(fā)展勢(shì)頭迅猛,應(yīng)用非常廣泛,有豐富的擴(kuò)展包可以應(yīng)付你能想到的各種應(yīng)用場(chǎng)景,lara...

    shevy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<