首頁  >  文章  >  後端開發  >  Laravel 5.4 入門系列:路由與視圖

Laravel 5.4 入門系列:路由與視圖

巴扎黑
巴扎黑原創
2018-05-16 16:22:392450瀏覽

主要知識點:

  • 從路由到視圖的基本流程

  • 資料傳遞

我們來看看第一講最後的頁面是怎麼出來的。先來看看路由:

// /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 } } 將會輸出123

  • ##{!! $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 模板功能,以後會介紹到。

現在,再次訪問,變成了我們定義的內容。

資料傳遞

我們在視圖中,也可以使用變數的形式。首先,在路由的函數中傳回給視圖

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 } }
    將會輸出
  • 123

    ##{!! $data !!}

    將會輸出警告框
  • 也就是說:

#{{ 變數名稱}}

: 轉義輸出
  • {!! 變數名稱!!}

    :原生輸出,如圖片、連結、js 程式碼等
  • ##

以上是Laravel 5.4 入門系列:路由與視圖的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn