首頁 > php框架 > Laravel > 主體

Laravel教你簡單寫出專業的RestfulAPI

藏色散人
發布: 2020-10-27 13:46:41
轉載
2675 人瀏覽過

Laravel教你簡單寫出專業的URL

引言

在我們連接了資料庫,並且使用遷移功能創建了資料庫表結構,使用Seeder為資料庫初步填充了一些偽資料。有了這些準備工作,我們可以考慮做一個資源介面功能,對外提供資料支援了。

#程式碼時間

#有沒有感覺自己設計的API介面和資料跟別的大廠提供的文檔資料結構不太一樣,看起來不是那麼專業,或者說不是那麼標準?我們和大廠還差幾個年級? laravel提供了簡單的標準方式,可以讓我們遵循最佳實踐寫出專業的url。

例如對於資源,使用restful風格聲明一下的url路由位址:

#第一列是http請求方法,第二列是laravel內聲明的路由規則,第三列是對應的控制器方法。上面的資源列表,涵蓋了增刪改查的所有動作,可以說很全面了。

如何快速地產生上述控制器方法?使用laravel腳手架指令,在命令列執行:

php artisan make:controller EventsController --resource
登入後複製
我們使用 –resource

選項,會在目標控制器內產生上述的所有方法。

產生的檔案位於

app/Http/Controllers/EventsController.php

# 內,初始化的內容如下:

##這些方法真的是開箱即用啊。 那麼,我們還要手動一條一條地宣告上面的那些路由條目嗎?那真是惡夢啊。還好,laravel幫我們做好了,只用

Route

類別的resource

方法註冊資源就可以了:

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;
登入後複製
index方法內填充以下程式碼:
$events = Event::all();return view('events.index')->with('events', $events);
登入後複製
有了以上的數據,在視圖內簡單地遍歷輸出內容,修改視圖檔案如下:

<h1>Events</h1>
登入後複製
        @forelse ($events as $event)         
  • {{ $event->name }}
  •     @empty        
  • No events found!
  •     @endforelse
範本檔案內

@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;
登入後複製
控制器內使用分頁功能,簡單對模型呼叫

paginate

方法即可:

$events = Events::paginate(10);
登入後複製
每頁設定為10條。我們在視圖內,要有一個前一頁,後一頁,以及頁碼的導航條,也不用我們手動寫了。 laravel竟然繼承到了

paginate

方法所回傳的

Illuminate\Pagination\LengthAwarePaginator 類別內,只用在視圖內加入這樣一行就夠了:

{!! $events->links() !!}
登入後複製
產生的導航條如下:

寫在最後

本文簡明扼要地介紹了laravel資料庫填充所使用的方法,我們可以手動填充,

也可以使用第三方函式庫填充偽數據,效率明顯提升很多。也只要準備好了數據,

才能談得上業務邏輯和介面對接。這些數據也是應用程式的基礎,所以很重要。

本文是上一章所述laravel資料庫遷移功能的補充。資料庫遷移是比較大的動作,

特別是已經上線生產的應用程式資料庫,如果非到更新遷移的地步不可,需要預期做好演練,

以應對可能的突發事故。                                           為  

以上是Laravel教你簡單寫出專業的RestfulAPI的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:learnku.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板