日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

3. 视图数据View Data和Balde模版 - Laravel从零开始教程

發(fā)布時間:2023/12/4 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 3. 视图数据View Data和Balde模版 - Laravel从零开始教程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

從零開始學laravel教程目錄

我們經(jīng)常需要將數(shù)據(jù)傳遞到視圖層顯示,Laravel中是如何做到這點的呢?那我們就要先了解下Balde模版.

我們現(xiàn)在還是進入到我們的Laravel52的項目中,用sublime打開它:

? cd /usr/local/var/www/Laravel52 ? subl .

進入到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'];// 設置$user數(shù)組的key為users, 以數(shù)組的形式做為第二個參數(shù)傳遞給// view()函數(shù),視圖層就能通過users這個key拿到$users數(shù)組中的數(shù)據(jù)了return view('welcome', ['users' => $users]); });

還可以對上面的寫法進行簡化下,我們知道php自帶有一個compact()函數(shù),這個函數(shù)能夠創(chuàng)建一個包含變量名和該變量名對應的值的數(shù)組,如:

$user = 'zhoujiping'; print_r(compact('user'));// 上面的語句通過compact(),轉(zhuǎn)化成的結果是['user' => 'zhoujiping']$users = ['Zhoujiping', 'Kuker Chou']; print_r(compact('users'));// 上面的語句通過上面的語句通過compact(),轉(zhuǎn)化成的結果是 // ['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); }); 如果有多個變量要傳遞,你可以鏈式調(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```文件,我們將```<body> ... </body>```中的內(nèi)容刪除,然后我們先寫一下原生的php的寫法,之后我們再使用```blade```模版,我們可以對比看下balde是多么的易用,我們先使用php原生的語句來輸出我們的```$users```數(shù)據(jù), <body>中的代碼如下: <body><?php foreach ($users as $user) { ?><li><?= $user; ?></li><?php } ?> </body> 像上面這樣寫是沒有問題的,視圖層能夠正常的加載并渲染數(shù)據(jù),不過如果都是這么去寫的話,那真的是件痛苦的事,現(xiàn)在我們就用laravel自帶的```balde```模版的寫法來更改一下: <body>@foreach ($users as $user)<li>{{ $user }}</li>@endforeach </body> 像上面這樣寫,是不是就感覺代碼清晰很多了,而且balde模版的語法非常容易猜到,基本上都是在php已有的關鍵字前面加上```@```符號作為開頭,以```@end```加上關鍵字作為結尾,比如說上面的數(shù)組循環(huán): @foreach ($users as $user)... @endforeach 比如說判斷語句: @if()@else@endif 在balde模版中如果要解析變量,我們可以用兩對大的花括弧```{{ $user }}```,至于blade的更多語法和用法,你可以去翻一翻laravel的官方文檔,如果你沒有時間看文檔,立馬就要使用laravel,也沒有什么關系,邊做邊查詢文檔就行,不過空閑的時候,你還是等把文檔看它個至少7,8遍吧。本節(jié)到這里結束。

總結

以上是生活随笔為你收集整理的3. 视图数据View Data和Balde模版 - Laravel从零开始教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。