回到最上方

文件

快速開始

安裝

你可以在命列列輸入以下指令安裝 Laravel:

    composer create-project laravel/laravel

或者,你也可以從 Github Repository 下載,下一步則是 安裝Composer ,安裝完Composer後接下來在專案的根目錄執行 composer install 指令進行安裝,這個指令將會下載安裝 Laravel 所需要的套件

在安裝完 Laravel 之後,可以看一下專案目錄去熟悉目錄架構,app 目錄包含的資料夾有views(視圖)controllers(控制器)models(模型),您大多數的程式碼都在 app 的資料夾中進行撰寫。您也可以到 app/config 目錄看看,這裡提供您應用程式可以設定的選項。

路由

為了要開始我們的應用程式,讓我們建立我們第一個路由(route),在 Laravel 中最簡單的路由是封閉性的路由,打開 app/routes.php 檔案並在檔案下方加入下列路由規則:

Route::get('users', function()
{
    return 'Users!';
});

現在如果你在瀏覽器網址列輸入 /users 的路由,你將會看到網頁輸出 Users! 的字串,太棒了!,你剛剛建立了你的第一個路由~

路由也可以附屬於控制器(Controller)類別,例如:

Route::get('users', 'UserController@getIndex');

這個路由告知了 Laravel ,任何對於網站的 /users 請求,將會導到 UserController 控制器類別中的 getIndex方法,有關於更多的控制器路由資訊,可以參考 控制器(Controllers) 說明文件

建立視圖(Views)

下一步我們將建立一個簡單的view(視圖)去呈現我們使用者的資料,view檔案是放在 app/views 目錄,包含網頁應用程式的 HTML 程式碼,我們要在這個目錄建立 layout.blade.phpusers.blade.php 這兩個 view 的檔案,首先我們先建立 layout.blade.php 的檔案內容:

<html>
    <body>
        <h1>Laravel Quickstart</h1>

        @yield('content')
    </body>
</html>

下一步我們建立 users.blade.php 的檔案內容:

@extends('layout')

@section('content')
    Users!
@stop

有一些語法或對你來說會有點陌生,這是因為我們正在使用 Laravel 的樣板系統 : Blade 。 Blade 執行速度非常快,因為它是一個少數簡單的正規表示式,使用單純的PHP對樣板進行編譯,Blade 提供強大的功能,像樣板繼承(inheritance),以及一些典型的 PHP 控制結構,像 iffor,其他詳情可以參考 樣板 說明文件

現在我們有我們的view了,讓我們回到我們 /users 的路由下,將原本回傳路由下回傳 Users! 變更為回傳 view 的內容:

Route::get('users', function()
{
    return View::make('users');
});

太棒了,現在你已經設定了一個簡單的view,並引用了 layout 的 view ,讓我們開始處理資料庫層吧。

建立Migration

為了建立一個資料表去保存我們的資料,我們將使用 Laravel 的 Migration 系統,Migration 讓你能夠透過語意表達,去定義修改你的資料庫,而且可以將這些對資料庫的修改異動,輕易的與團隊中的其他人共享。

首先讓我們來設定資料庫連線吧,你可以在 app/config/database.php 的檔案中設定所有的資料庫連線。 Laravel是使用 MySQL 當作預設使用的資料庫,並保存資料於 app/database 資料夾。 你也可以變更要預設使用的 資料庫類型sqlite ,並在資料庫設定檔案中設定 sqlite 連線的相關驗證資訊。

接下來我們使用 概要去建立我們的 Migration,在我們專案的根目錄執行下列指令:

php artisan migrate:make create_users_table

接下來到 app/database/migrations 目錄找到我們產生的 Migration 檔案,這個檔案會包含兩個方法:updown ,在 up 方法中建立你想要對資料表做的異動,在 down 方法中則是做與 up 方法反向的資料表異動。

讓我們來定義 Migration 檔案,看起來會像下列這樣:

public function up()
{
    Schema::create('users', function($table)
    {
        $table->increments('id');
        $table->string('email')->unique();
        $table->string('name');
        $table->timestamps();
    });
}

public function down()
{
    Schema::drop('users');
}

接下來,我們可以從命令列執行我們的 Migration ,只需要在專案的根目錄執行下列 migrate 指令即可

php artisan migrate

如果你想要復原執行過的 Migration ,可以在命令列輸入 migrate:rollback 指令即可,而現在我們有一個資料表了,讓我們從資料表中來抓取一些資料吧!

Eloquent ORM

Laravel 擁有一個優秀的 ORM : Eloquent ,如果你使用過 Ruby on Rails 的框架,你會發現 Eloquent 有很熟悉的感覺,因為他遵循著 ActiveRecord ORM 風格的資料庫互動。

首先讓我們定義一個 Model(模型),一個 Eloquent 可以被用來使用資料庫的關聯查詢,就像在給予的列(row)資料中,表示在資料表中的資料,別擔心,你會很快地了解它的! Model 通常是存放在 app/models 目錄,讓我們在 Model 資料夾中定義一個 User.php 的 Model ,像這樣:

class User extends Eloquent {}

請注意,我們沒有告訴 Eloquent 要使用哪一個資料表, Eloquent 有很多種預設的規則,其中一個規則是使用 Model 名稱複數名稱 (User => Users) 當作是資料表的名稱,相當的方便!

使用你偏好的資料庫管理工作,在你的 users 資料表新增幾筆資料,我們將使用 Eloquent 去取得這些資料,並將資料傳給我們的 view。

現在我們去修改 /users 的路由規則,改成像這樣子:

Route::get('users', function()
{
    $users = User::all();

    return View::make('users')->with('users', $users);
});

讓我們來循序走過在這個路由的過程,首先 在 User Model 中的 all 方法,會取得所有在 users 資料表的所有資料,下一步我們透過 with 方法傳遞這些資料給我們的 view, with 的方法接受一個 key 及 value 的資料,讓資料可以在 view 中被存取使用。

太棒了,現在我們準備在 view 中顯示使用者的資料了!

顯示資料

我們讓 view 可以透過 users 存取我們使用者的資料,所以我們可以像這樣去顯示使用者的資料:

@extends('layout')

@section('content')
    @foreach($users as $user)
        <p>{{ $user->name }}</p>
    @endforeach
@stop

你可能會好奇在哪裡去找到我們的 echo 陳述式,當我們使用 Blade,你可以透過兩個大括號{{}}去列印資料,這相當的容易,現在你可以到 /users 路由下去看看你的資料表的使用者姓名了。

這僅僅是剛開始而已,在本次教學中,你已經看到基本的 Laravel 的框架了,但是還有更多令人興奮的東西等著我們去學,可以去閱讀 Eloquent ORM樣板 教學文件去挖掘更深入更強大的功能。或許你會好奇 佇列單元測試,話又說回來,或許你想要使用 IoC容器 展示可擴充性的架構,都是可以讓你選擇的!

討論