Laravel教你簡單寫出專業的RestfulAPI
引言
在我們連接了資料庫,並且使用遷移功能創建了資料庫表結構,使用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 id="Events">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 id="Events">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;
方法即可:
$events = Events::paginate(10);
paginate
方法所回傳的Illuminate\Pagination\LengthAwarePaginator 類別內,只用在視圖內加入這樣一行就夠了:
{!! $events->links() !!}
寫在最後
本文簡明扼要地介紹了laravel資料庫填充所使用的方法,我們可以手動填充,
也可以使用第三方函式庫填充偽數據,效率明顯提升很多。也只要準備好了數據,
才能談得上業務邏輯和介面對接。這些數據也是應用程式的基礎,所以很重要。
本文是上一章所述laravel資料庫遷移功能的補充。資料庫遷移是比較大的動作,
特別是已經上線生產的應用程式資料庫,如果非到更新遷移的地步不可,需要預期做好演練,
以應對可能的突發事故。 為
以上是Laravel教你簡單寫出專業的RestfulAPI的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在dcatadmin(laravel-admin)中如何實現自定義點擊添加數據的表格功能在使用dcat...

Laravel郵件發送失敗時的退信代碼獲取方法在使用Laravel開發應用時,經常會遇到需要發送驗證碼的情況。而在實�...

Laravel框架中Redis連接的共享與select方法的影響在使用Laravel框架和Redis時,開發者可能會遇到一個問題:通過配置...

在Laravel多租戶擴展包stancl/tenancy中自定義租戶數據庫連接使用Laravel多租戶擴展包stancl/tenancy構建多租戶應用時,...

LaravelEloquent模型檢索:輕鬆獲取數據庫數據EloquentORM提供了簡潔易懂的方式來操作數據庫。本文將詳細介紹各種Eloquent模型檢索技巧,助您高效地從數據庫中獲取數據。 1.獲取所有記錄使用all()方法可以獲取數據庫表中的所有記錄:useApp\Models\Post;$posts=Post::all();這將返回一個集合(Collection)。您可以使用foreach循環或其他集合方法訪問數據:foreach($postsas$post){echo$post->

在Laravel6項目中如何檢查Redis連接的有效性是一個常見的問題,特別是在項目依賴於Redis進行業務處理時。以下是...

Laravel 是一款 PHP 框架,用於輕鬆構建 Web 應用程序。它提供一系列強大的功能,包括:安裝: 使用 Composer 全局安裝 Laravel CLI,並在項目目錄中創建應用程序。路由: 在 routes/web.php 中定義 URL 和處理函數之間的關係。視圖: 在 resources/views 中創建視圖以呈現應用程序的界面。數據庫集成: 提供與 MySQL 等數據庫的開箱即用集成,並使用遷移來創建和修改表。模型和控制器: 模型表示數據庫實體,控制器處理 HTTP 請求。

Laravel數據庫遷移過程中出現類重複定義問題在使用Laravel框架進行數據庫遷移時,開發者可能會遇到“類已使用�...
