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