主要知識點:php
從路由到視圖的基本流程html
數據傳遞web
咱們來看看第一講最後的頁面是怎麼出來的。先來看看路由:數組
// /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 模板功能,之後會介紹到。網站
如今,再次訪問,變成了咱們定義的內容。code
咱們在視圖中,也能夠使用變量的形式。首先,在路由的函數中返回給視圖 name
變量:htm
// /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 }}
將會輸出 <alert>123</alert>
{!! $data !!}
將會輸出警告框
也就是說:
{{ 變量名 }}
: 轉義輸出
{!! 變量名 !!}
:原生輸出,好比圖片、連接、js 代碼等