日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

larvel php restful_Laravel教你简单写出专业的RestfulAPI

發(fā)布時(shí)間:2024/9/15 php 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 larvel php restful_Laravel教你简单写出专业的RestfulAPI 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

下面由Laravel教程欄目給大家介紹Laravel寫(xiě)出專(zhuān)業(yè)的RestfulAPI的方法,希望對(duì)需要的朋友有所幫助!

Laravel教你簡(jiǎn)單寫(xiě)出專(zhuān)業(yè)的URL

引言

在我們連接了數(shù)據(jù)庫(kù),并且使用遷移功能創(chuàng)建了數(shù)據(jù)庫(kù)表結(jié)構(gòu),

使用Seeder為數(shù)據(jù)庫(kù)初步填充了一些偽數(shù)據(jù)。有了這些準(zhǔn)備工作,我們可以考慮做一個(gè)資源接口功能,

對(duì)外提供數(shù)據(jù)支持了。

代碼時(shí)間

有沒(méi)有感覺(jué)自己設(shè)計(jì)的API接口和數(shù)據(jù)跟別的大廠(chǎng)提供的文檔數(shù)據(jù)結(jié)構(gòu)不太一樣,

看上去不是那么專(zhuān)業(yè),或者說(shuō)不是那么標(biāo)準(zhǔn)?我們和大廠(chǎng)還差幾個(gè)年級(jí)?

laravel提供了簡(jiǎn)單的標(biāo)準(zhǔn)方式,可以讓我們遵循最佳實(shí)踐寫(xiě)出專(zhuān)業(yè)的url。

比如對(duì)于資源,使用restful風(fēng)格聲明一下的url路由地址:

第一列是http請(qǐng)求方法,第二列是laravel內(nèi)聲明的路由規(guī)則,第三列是對(duì)應(yīng)的控制器方法。上面的資源列表,涵蓋了增刪改查的所有動(dòng)作,可以說(shuō)很全面了。

如何快捷地生成上述控制器方法呢?使用laravel腳手架指令,在命令行運(yùn)行:php artisan make:controller EventsController --resource

我們使用 –resource 選項(xiàng),會(huì)在目標(biāo)控制器內(nèi)生成上述的所有方法。

生成的文件位于 app/Http/Controllers/EventsController.php 內(nèi),初始化的內(nèi)容如下:

這些方法真的是開(kāi)箱即用啊。

那么,我們還要手動(dòng)一條一條地聲明上面的那些路由條目嗎?那真是噩夢(mèng)啊。還好,laravel幫我們做好了,只用Route類(lèi)的 resource 方法注冊(cè)資源就可以了:Route::resource('events', 'EventsController');

使用資源路由方法,只用指定路由名稱(chēng),和對(duì)應(yīng)的控制器方法,就可以不用繁瑣地寫(xiě)那些路由,和控制器方法了。

為方便展示,我們把數(shù)據(jù)渲染到視圖文件,首先創(chuàng)建 resources/views/events/index.blade.php 視圖文件,使用默認(rèn)的布局文件,填充以下代碼:@extends('layouts.app')

@section('content')

Events

@endsection

打開(kāi) app/Http/Controllers/EventsController 文件并修改 index 方法:public function index(){

return view('events.index');}

大家看到了,上述方法內(nèi)是沒(méi)有數(shù)據(jù)庫(kù)數(shù)據(jù)交互的,我們下面引入模型,并渲染到視圖內(nèi)。在控制器頂部添加如下引用:use App\Event;

在index方法內(nèi)填充以下代碼:$events = Event::all();return view('events.index')->with('events', $events);

有了以上的數(shù)據(jù),在視圖內(nèi)簡(jiǎn)單地遍歷輸出內(nèi)容,修改視圖文件如下:

Events

@forelse ($events as $event)

{{ $event->name }}

@empty

No events found!

@endforelse

模板文件內(nèi)@forelse 方法會(huì)判斷是否 $events 變量至少有一個(gè)元素可供遍歷,如果沒(méi)有就輸出 @empty區(qū)塊的內(nèi)容。在瀏覽器內(nèi)訪(fǎng)問(wèn)路由地址,輸出內(nèi)容大致如下圖。因?yàn)槭褂玫腇aker填充的偽數(shù)據(jù),所以看上去是這樣的:

如果數(shù)據(jù)量太大,這一頁(yè)估計(jì)要加載很久,列表很長(zhǎng)。所以需要分頁(yè)了。加入分頁(yè)功能,使用的SQL語(yǔ)句大概是這樣的: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;

控制器內(nèi)使用分頁(yè)功能,簡(jiǎn)單對(duì)模型調(diào)用paginate方法即可:$events = Events::paginate(10);

每頁(yè)設(shè)置為10條。我們?cè)谝晥D內(nèi),要有一個(gè)前一頁(yè),后一頁(yè),以及頁(yè)碼的導(dǎo)航條,也不用我們手動(dòng)寫(xiě)了。laravel竟然繼承到了paginate方法所返回的 Illuminate\Pagination\LengthAwarePaginator 類(lèi)內(nèi),只用在視圖內(nèi)添加這樣一行就夠了:{!! $events->links() !!}

生成的導(dǎo)航條如下:

寫(xiě)在最后

本文簡(jiǎn)明扼要地介紹了laravel數(shù)據(jù)庫(kù)填充所使用的方法,我們可以手動(dòng)填充,

也可以使用第三方庫(kù)填充偽數(shù)據(jù),效率明顯提升很多。也只要準(zhǔn)備好了數(shù)據(jù),

才能談得上業(yè)務(wù)邏輯和接口對(duì)接。這些數(shù)據(jù)也是應(yīng)用程序的基礎(chǔ),所以很重要。

本文是對(duì)上一章所述laravel數(shù)據(jù)庫(kù)遷移功能的補(bǔ)充。數(shù)據(jù)庫(kù)遷移是一個(gè)比較大的動(dòng)作,

特別是已經(jīng)上線(xiàn)生產(chǎn)的應(yīng)用數(shù)據(jù)庫(kù),如果非到更新遷移的地步不可,需要預(yù)期做好演練,

以應(yīng)對(duì)可能的突發(fā)事故。

總結(jié)

以上是生活随笔為你收集整理的larvel php restful_Laravel教你简单写出专业的RestfulAPI的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。