主要知識點:
從路由到視圖的基本流程
資料傳遞
我們來看看第一講最後的頁面是怎麼出來的。先來看看路由:
// /routes/web.php Route::get('/', function () { return view('welcome'); });
用大白話說,就是當我們訪問網站根目錄的時候,就返回welcome
視圖,我們修改下視圖的內容:
// /resources/views/welcome.blade.php <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> 你好, Laravel </body> </html>
可以看到,定義傳回的視圖時,可以省略.blade.php
後綴,該後綴代表使用Laravel 的Blade 模板功能,以後會介紹到。
現在,再次訪問,變成了我們定義的內容。
我們在視圖中,也可以使用變數的形式。首先,在路由的函數中傳回給視圖name
變數:
// /routes/web.php Route::get('/', function () { $name = "Zen"; return view('welcome',['name'=>$name]); });
也可以寫成:
// /routes/web.php Route::get('/', function () { $name = "Zen"; return view('welcome')->with('name',$name); });
更常見的寫法是使用php 提供的 compact
函數,compact
函數的作用是建立一個包含變數名稱和變數的值的數組,更靈活且簡單:
// /routes/web.php Route::get('/', function () { $name = "Zen"; $age = 99; $sex = "男"; return view('welcome',compact('name','age','sex'));; });
在視圖中顯示該變數:
// /resources/views/welcome.blade.php // 省略 <body> 你好, <?php echo $name?> </body>
雖然可以嵌入PHP 語言來顯示變量,不過Laravel 提供了更簡潔的語法:
// /resources/views/welcome.blade.php <body> 你好, {{ $name }} ,你的年龄是 {{ $age }}, 你的性别是 {{ $sex }} </body>
或:
// /resources/views/welcome.blade.php <body> 你好, {!! $name !!} ,你的年龄是 {!! $age !!}, 你的性别是 {!! $sex !!} </body>
這兩者有什麼差別呢,看下面的例子:
$data = '<alert>123</alert>'
在視圖中兩者的輸出:
##{{ $data } } 將會輸出
將會輸出警告框
: 轉義輸出
:原生輸出,如圖片、連結、js 程式碼等
## 路由與視圖
// /routes/web.php Route::get('/', function () { return view('welcome'); });用大白話說,就是當我們訪問網站根目錄的時候,就返回
welcome
視圖,我們修改下視圖的內容:// /resources/views/welcome.blade.php <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> 你好, Laravel </body> </html>
可以看到,定義傳回的視圖時,可以省略
.blade.php 後綴,該後綴代表使用Laravel 的Blade 模板功能,以後會介紹到。 現在,再次訪問,變成了我們定義的內容。
// /routes/web.php Route::get('/', function () { $name = "Zen"; return view('welcome',['name'=>$name]); });
也可以寫成:
// /routes/web.php Route::get('/', function () { $name = "Zen"; return view('welcome')->with('name',$name); });更常見的寫法是使用php 提供的
compact
函數,compact 函數的作用是建立一個包含
變數名稱和
變數的值的數組,更靈活且簡單:
// /routes/web.php Route::get('/', function () { $name = "Zen"; $age = 99; $sex = "男"; return view('welcome',compact('name','age','sex'));; });在視圖中顯示該變數:
// /resources/views/welcome.blade.php // 省略 <body> 你好, <?php echo $name?> </body>雖然可以嵌入PHP 語言來顯示變量,不過Laravel 提供了更簡潔的語法:
// /resources/views/welcome.blade.php <body> 你好, {{ $name }} ,你的年龄是 {{ $age }}, 你的性别是 {{ $sex }} </body>或:
// /resources/views/welcome.blade.php <body> 你好, {!! $name !!} ,你的年龄是 {!! $age !!}, 你的性别是 {!! $sex !!} </body>這兩者有什麼差別呢,看下面的例子:
$data = '<alert>123</alert>'在視圖中兩者的輸出: ##{{ $data } }
##{!! $data !!}
也就是說:
#{{ 變數名稱}}
: 轉義輸出{!! 變數名稱!!}
以上是Laravel 5.4 入門系列:路由與視圖的詳細內容。更多資訊請關注PHP中文網其他相關文章!