iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 15
1
Modern Web

Laravel從入門到放棄…………原生PHP (疑?系列 第 14

[Day 14] Laravel實作 - 控制器與模板設計規劃(二)

今天繼續昨天的主題

使用模板

Laravel自訂了Blade模板的引擎,使用簡潔的語法,讓我們可以輕易地控制顯示的畫面,所有的模板檔案皆放在resources/views目錄下,所有的模板檔案名稱皆要命名為*.blade.php,這樣之後才可以正確的載入指定的模板。
https://ithelp.ithome.com.tw/upload/images/20190925/20105694zsYkflqtmi.png

在使用者驗證控制器(UserAuthController)中,我們在註冊頁使用view()方法去處理模板,在第一個參數指定要使用的模板名稱為auth.signUp,而不同的目錄會用句點(.)去串接,所以表示我們的模板檔案是放在resources/views/auth/signUp.blade.php路徑下,而在view()方法的第二個參數,可以指定要傳送給模板使用的資料。

<?PHP
namespace App\Http\Controllers\User;

use App\Http\Controllers\Controller;

// 廚師 UserAuthController
class UserAuthController extends Controller
{
    //拿手菜 signUpPage
    public function signUpPage()
    {
        $binding = [
            'title' => '註冊',
        ];
        return view('auth.signUp', $binding);
    }
}
?>

模板資料顯示

當模板接收到控制器的資料後,可以使用 {{ }} 方法將資料印出,在上面範例中auth.signUp模板接收傳入的$title變數資料,就可以像這樣直接在畫面上印出該資料了!

<h1>{{ $title }}</h1>

<div class="social">
    <a href="#">分享到 Facebook</a>
    <a href="#">分享到 Twitter</a>
</div>

E-mail:
<input type="text" name="email" placeholder="Email"/>

密碼:
<input type="password" name="password" placeholder="密碼"/>

暱稱:
<input type="text" name="nickname" placeholder="暱稱"/>

{{ $title }} 的意思就是 <?PHP echo htmlentities($title) ?>,會將變數資料的特殊字元做編碼轉換,避免當使用者註冊或留言時輸入等的特殊字元做XSS攻擊,若您希望對特殊字元不做編碼轉換直接輸出的話,就可以使用 {{!! $title !!}} 去做資料輸出,{{!! $title !!}} 的意思就是 <?PHP echo $title ?>,端看情境需求做選擇即可。

以下是執行成果
http://localhost:6943//user/auth/sign-up
(網站的網址會隨著網站的設定而改變)

https://ithelp.ithome.com.tw/upload/images/20190925/20105694yS1tcrHUsY.png


上一篇
[Day 13] Laravel實作 - 控制器與模板設計規劃(一)
下一篇
[Day 15] Laravel實作 - 控制器與模板設計規劃(三)
系列文
Laravel從入門到放棄…………原生PHP (疑?47

尚未有邦友留言

立即登入留言