iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 10
1
Modern Web

30天成為Laravel萌新系列 第 10

30天成爲Laravel萌新(第9天) - 路由&頁面模板(2)

繼續昨天

Route::get('/hello/{name}', function ($name) {
    return '<h1>Hello, '.$name.'</h1>';
});

透過路徑接受了參數傳了進來,再加以加工輸出回去。不過這麼寫不怎麼美觀,
因為這違反了 「 只做一件事情 」的原則,不但處理了路由請求,還傳遞參數並渲染頁面。

今天透過模板系統,要來把路由請求處理與頁面設計分離。


首先,把上面程式修改為以下內容

Route::get('/hello/{name}', function ($name) {
    return view("hello-name", [
        "name" => $name,
    ]);
});

接著在新增一個模板檔案resources/views/hello-name.blade.php

<h1>Hello, {{$name}}</h1>

然後瀏覽http://localhost/hello/Daniel 看看,應該與之前畫面並無差異。


透過上面簡短範例,可以了解到view()可以渲染blade模板,並且接受而外一個字典(dict)傳遞變數進模板選染。

至於模板儲存在resources/views/目錄底下,.blade.php被視為副檔名,指定時只需要指定模板名稱即可,無須包含副檔名。

在模板之中,可以透過{{$variable}}的方式替換成傳入的變數,或是函式{{phpinfo()}}

blade模板中,也可以像過往以樣直接寫PHP程式,不過不在是用<?php ?>包起來,而是改用@php @endphp

@php
phpinfo();
@endphp

本文同步發表於隨性筆記


上一篇
30天成爲Laravel萌新(第8天) - 路由&頁面模板(1)
下一篇
30天成爲Laravel萌新(第10天)- 路由&頁面模板(3)
系列文
30天成為Laravel萌新32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言