[Laravel 學習筆記] 基礎 Routing, Controllers 和 Views 教學

本系列 Laravel 教學筆記將參酌 Laravel 4 From ScratchLaravel 5 From ScratchLaravel  官網和 Laravel 中文官網 相關資訊進行撰寫(以 Laravel 4 From Scratch 為主)。本篇將記錄基礎 Routing, Controllers 和 Views 教學。

接下來我們使用 sublime Text 打開我們已創建的 Laravel 專案。


本系列文章將以 Laravel 4 為主,所以若想使用 Laravel 5 在創建專案時應輸入以下指令(因 Laravel 5 尚未正式釋出):

composer create-project laravel/laravel first-laravel-app dev-develop

此時在創好的資料夾內輸入 php artisian -V 就可以看到最新的版本


檔案結構如下圖所示:



圖一、Laravel 專案檔案(version 4.2.11)結構


圖二、Laravel 專案檔案(version 5.0-dev)結構

首先,我們藉由開啟 app 資料夾中的 routes.php 先體驗 Laravel Routing 的設計。(app 資料夾下的 Http 中可以看到 routes.php 這個檔案)


圖三、Laravel app(version 4.2.11)結構


圖四、Laravel app(version 5.0-dev)結構

routing 的基本格式如下(get 可以換成 post 等 http 行為):

Route::get('/', function() {

  return Make::view('hello.index');
  // 若為 5 版則為  return view('hello.index');
});

Route::get('/', 'MyController@show');


Route::get('/', function(){

  return 'Hello';
  // 不經由 view 直接回應 Http request
});

其中 hello.index 為 Views/ hello 資料夾下的 view 檔案,使用 Laravel 模版需命名為 index.blade.php。若不是直接在後面使用 function,而是需要使用 controller 的話用法如第二個範例。MyController 是當使用者輸入 homestead:8000/ 時指定MyController 中的 show 方((function)負責處理 。


產生 controller 亦可以使用以下指令:

php artisan make:controller HomeController 


圖五、產生的 controller

介紹了基本的 controller 和 routing 後我們要提一下 view 的部份:


View(就是你看到的 HTML 部分)統一放置在 Views 資料夾中,內部可以再建資料夾方便管理。隨著專案的越來越大,我們發現會需要常複製貼上 html 原始碼,此時就是建立 layout 的好時機。


我們可以在 views 資料夾中建立 layout 資料夾,裡面放入 header.blade.php、footer.blade.php 等常用的 layout,接著在檔案中輸入 header 的 html 


<!DOCTYPE html>

<html lang="en">
<head>
<meta charset="UTF-8">
<title>Laravel Blog</title>
</head>
<body>
@yield('content')


若需要引入,則參考以下 index.blade.php 原始碼(其中 @section('content') 對應到layout 的@yield('content'),@extends('layout.header')則是引入的意思):

@extends('layout.header')


@section('content')

<h1>This is the homepag</h1>
@stop


@extends('layout.footer')

最後提一下,在專案中 CSS / JavaScript / images 網頁靜態資源(assets)通常會統一放在 public 資料下(可以建立 styles、scripts、images 資料夾存放靜態資源),引入時直接使用即可 

<link rel="stylesheet" href="styles/main.css">

<script src="scripts/main.js"></script>


以上簡單介紹 Routing, Controllers 和 Views 基礎教學,接下來我們要進到如何將 model 的資料傳到 view 中顯示。

參考文件:

1. Laravel 中文官網
2. Laravel  官網
3. Laravel 4 From Scratch
4. Laravel 5 From Scratch

贊助本站 (Donate)