引言
在我們連接了資料庫,並且使用遷移功能創建了資料庫表結構,使用Seeder為資料庫初步填充了一些偽資料。有了這些準備工作,我們可以考慮做一個資源介面功能,對外提供資料支援了。
#程式碼時間
#有沒有感覺自己設計的API介面和資料跟別的大廠提供的文檔資料結構不太一樣,看起來不是那麼專業,或者說不是那麼標準?我們和大廠還差幾個年級? laravel提供了簡單的標準方式,可以讓我們遵循最佳實踐寫出專業的url。
例如對於資源,使用restful風格聲明一下的url路由位址:
#第一列是http請求方法,第二列是laravel內聲明的路由規則,第三列是對應的控制器方法。上面的資源列表,涵蓋了增刪改查的所有動作,可以說很全面了。 如何快速地產生上述控制器方法?使用laravel腳手架指令,在命令列執行:php artisan make:controller EventsController --resource
選項,會在目標控制器內產生上述的所有方法。
產生的檔案位於
app/Http/Controllers/EventsController.php# 內,初始化的內容如下:
##這些方法真的是開箱即用啊。 那麼,我們還要手動一條一條地宣告上面的那些路由條目嗎?那真是惡夢啊。還好,laravel幫我們做好了,只用
Route類別的
Route::resource('events', 'EventsController');
為方便展示,我們把資料渲染到視圖文件,先建立resources/views/events/index.blade.php 視圖文件,使用預設的佈局文件,填入以下程式碼:
@extends('layouts.app') @section('content') <h1>Events</h1> @endsection
app/Http/Controllers/EventsController
檔案並修改index 方法:
public function index(){ return view('events.index');}
use App\Event;
$events = Event::all();return view('events.index')->with('events', $events);
<h1>Events</h1>
@forelse 方法會判斷是否$events
變數至少有一個元素可供遍歷,如果沒有就輸出@empty
區塊的內容。在瀏覽器內存取路由位址,輸出內容大致如下圖。因為使用的Faker填充的偽數據,所以看起來是這樣的:如果數據量太大,這一頁估計要載入很久,列表很長。所以需要分頁了。加入分頁功能,使用的SQL語句大概是這樣的:select id, name from events order by id asc limit 10 offset 0;
select id, name from events order by id asc limit 10 offset 10;
方法即可:
$events = Events::paginate(10);
paginate
方法所回傳的Illuminate\Pagination\LengthAwarePaginator 類別內,只用在視圖內加入這樣一行就夠了:
{!! $events->links() !!}
寫在最後
本文簡明扼要地介紹了laravel資料庫填充所使用的方法,我們可以手動填充,
也可以使用第三方函式庫填充偽數據,效率明顯提升很多。也只要準備好了數據,
才能談得上業務邏輯和介面對接。這些數據也是應用程式的基礎,所以很重要。
本文是上一章所述laravel資料庫遷移功能的補充。資料庫遷移是比較大的動作,
特別是已經上線生產的應用程式資料庫,如果非到更新遷移的地步不可,需要預期做好演練,
以應對可能的突發事故。 為
以上是Laravel教你簡單寫出專業的RestfulAPI的詳細內容。更多資訊請關注PHP中文網其他相關文章!