從零開始學(xué)laravel教程目錄
我們經(jīng)常需要將數(shù)據(jù)傳遞到視圖層顯示,Laravel中是如何做到這點的呢?那我們就要先了解下Balde模版.
我們現(xiàn)在還是進(jìn)入到我們的Laravel52的項目中,用sublime打開它:
? cd /usr/local/var/www/Laravel52 ? subl .
進(jìn)入到route.php文件中,上一節(jié)我們只是顯示一個靜態(tài)的視圖層,如下:
Route::get("/", function () { return view("welcome"); });
下面我們新建一個$users的數(shù)組,然后將$users數(shù)組中的數(shù)據(jù)傳遞到視圖中去,Laravel提供了多種方法將數(shù)據(jù)傳遞到視圖,我們先來看第一種方法,將一個數(shù)組作為第二個參數(shù)傳入到view()函數(shù)中。
Route::get("/", function () { $user = ["Zhoujiping", "Kuker Chou"]; // 設(shè)置$user數(shù)組的key為users, 以數(shù)組的形式做為第二個參數(shù)傳遞給 // view()函數(shù),視圖層就能通過users這個key拿到$users數(shù)組中的數(shù)據(jù)了 return view("welcome", ["users" => $users]); });
還可以對上面的寫法進(jìn)行簡化下,我們知道php自帶有一個compact()函數(shù),這個函數(shù)能夠創(chuàng)建一個包含變量名和該變量名對應(yīng)的值的數(shù)組,如:
$user = "zhoujiping"; print_r(compact("user")); // 上面的語句通過compact(),轉(zhuǎn)化成的結(jié)果是["user" => "zhoujiping"] $users = ["Zhoujiping", "Kuker Chou"]; print_r(compact("users")); // 上面的語句通過上面的語句通過compact(),轉(zhuǎn)化成的結(jié)果是 // ["user" => ["Zhoujiping", "Kuker Chou"]]
ok, 現(xiàn)在我們就能更改我們的代碼如下:
Route::get("/", function () { $users = ["Zhoujiping", "Kuker Chou"]; return view("welcome", compact("users")); });
如果我們有多個變量要傳遞,我們可以這么寫:
Route::get("/", function () { $country = "China"; $users = ["Zhoujiping", "Kuker Chou"]; $ages = [10, 20]; return view("welcome", compact("country", "users", "ages")); });
嗯,像上面這樣寫,代碼是不是干凈很多了,否則如果變量過多,你就需要傳遞一個長長的二維數(shù)組作為view()的第二個參數(shù),代碼的可讀性就太差了。
除了上面的傳遞參數(shù)的方法,Laravel還提供了with()函數(shù),我們可以這么寫:
Route::get("/", function () { $users = ["Zhoujiping", "Kuker Chou"]; return view("welcome")->with("users", $users); });
我們也可以講with("users", $users)這里的"user"健和with憑借在一起,將"users"的首字母變大寫, 變成withUsers($user),我們看下整體的代碼:
Route::get("/", function () { $users = ["Zhoujiping", "Kuker Chou"]; // 使用with()來傳參數(shù) return view("welcome")->with("users", $users); });
Route::get("/", function () { $users = ["Zhoujiping", "Kuker Chou"]; // 使用with+自定義的鍵名(如:users),拼接成withUsers()來傳參數(shù) return view("welcome")->withUsers($users); });
如果有多個變量要傳遞,你可以鏈?zhǔn)秸{(diào)用```with()```,如:
return view("welcome")->with("users", $users)->with("country", $country)->with("ages", $ages);
好了,傳遞數(shù)據(jù)給view層的方法就是上面幾種了,我比較喜歡使用```compact()```這種類型,下面我們把route.php中的代碼改回成下面這樣:
Route::get("/", function () { $users = ["Zhoujiping", "Kuker Chou"]; return view("welcome", compact("users")); });
下面我們?nèi)ヒ晥D層顯示數(shù)據(jù),我們打開```resources/views/welcome.balde.php```文件,我們將``` ... ```中的內(nèi)容刪除,然后我們先寫一下原生的php的寫法,之后我們再使用```blade```模版,我們可以對比看下balde是多么的易用,我們先使用php原生的語句來輸出我們的```$users```數(shù)據(jù), 中的代碼如下:
像上面這樣寫是沒有問題的,視圖層能夠正常的加載并渲染數(shù)據(jù),不過如果都是這么去寫的話,那真的是件痛苦的事,現(xiàn)在我們就用laravel自帶的```balde```模版的寫法來更改一下:
@foreach ($users as $user)
像上面這樣寫,是不是就感覺代碼清晰很多了,而且balde模版的語法非常容易猜到,基本上都是在php已有的關(guān)鍵字前面加上```@```符號作為開頭,以```@end```加上關(guān)鍵字作為結(jié)尾,比如說上面的數(shù)組循環(huán):
@foreach ($users as $user) ... @endforeach
比如說判斷語句:
@if() @else @endif
在balde模版中如果要解析變量,我們可以用兩對大的花括弧```{{ $user }}```,至于blade的更多語法和用法,你可以去翻一翻laravel的官方文檔,如果你沒有時間看文檔,立馬就要使用laravel,也沒有什么關(guān)系,邊做邊查詢文檔就行,不過空閑的時候,你還是等把文檔看它個至少7,8遍吧。 本節(jié)到這里結(jié)束。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/22019.html
摘要:在程序界最熟悉的莫過于通過輸出我們能了解路由和最基礎(chǔ)的視圖,這一小節(jié),我們主要是學(xué)習(xí)下如何創(chuàng)建路由,如何加載視圖,這節(jié)非常簡單,跟著做就行。從零開始學(xué)教程目錄 在程序界最熟悉的莫過于Hello World,通過輸出Hello Word,我們能了解路由和最基礎(chǔ)的視圖,這一小節(jié),我們主要是學(xué)習(xí)下如何創(chuàng)建路由,如何加載視圖,這節(jié)非常簡單,跟著做就行。 上一節(jié)我們通過laravel new 項...
摘要:在文件的標(biāo)簽中加上以下代碼新手上路注冊登陸上面只是引用了一些簡單的的,也沒什么難的,不用傷心。 Laravel身為最優(yōu)雅的PHP框架,很多學(xué)習(xí)PHP的小伙伴造就對Laravel垂涎欲滴。今天就來實現(xiàn)你的愿望,讓我們一起從零開始,利用Laravel實現(xiàn)Web應(yīng)用最常見的注冊和登錄功能!所有的課程源碼已放在Github上:laravel-start. Race Start ! 首先我們來...
摘要:行處理視圖文件名后綴。結(jié)語從源碼上看,使用了原始作為模版機(jī)制使得視圖邏輯非常簡單。無非也就是把視圖進(jìn)來,用輸出緩沖把執(zhí)行結(jié)果拿到即可。此文可以轉(zhuǎn)載,但轉(zhuǎn)載前需要發(fā)郵件到進(jìn)行溝通,未溝通的均視作侵權(quán)。 前言 CI 的 View 沒有像 Laravel 等一些流行框架一樣設(shè)計的那么重,有自己的一套模版機(jī)制,CI 一直采用純天然的 PHP 模板形式,純天然的好處是不用再學(xué)習(xí)一套模板語言了,缺...
摘要:原文來自免費視頻教程地址期間受到很多私事影響,終于還是要好好寫寫的教程了。我們來實現(xiàn)這個功能顯示文章詳情通過文章展示來快速體驗上面的流程注冊路由來到中,我們增加一個路由上面的路由指定我們需要加載中的方法。 原文來自: https://jellybool.com/post/programming-with-laravel-5-model-controller-view-basic-wor...
閱讀 1140·2021-11-24 10:21
閱讀 2576·2021-11-19 11:35
閱讀 1678·2019-08-30 15:55
閱讀 1307·2019-08-30 15:54
閱讀 1205·2019-08-30 15:53
閱讀 3519·2019-08-29 17:21
閱讀 3319·2019-08-29 16:12
閱讀 3428·2019-08-29 15:23