0

0

Laravel教你简单写出专业的RestfulAPI

藏色散人

藏色散人

发布时间:2020-10-27 13:45:46

|

2821人浏览过

|

来源于learnku

转载

下面由Laravel教程栏目给大家介绍Laravel写出专业的RestfulAPI的方法,希望对需要的朋友有所帮助!

Laravel教你简单写出专业的URL

引言

在我们连接了数据库,并且使用迁移功能创建了数据库表结构,

使用Seeder为数据库初步填充了一些伪数据。有了这些准备工作,我们可以考虑做一个资源接口功能,

对外提供数据支持了。

图片

代码时间

有没有感觉自己设计的API接口和数据跟别的大厂提供的文档数据结构不太一样,

看上去不是那么专业,或者说不是那么标准?我们和大厂还差几个年级?

laravel提供了简单的标准方式,可以让我们遵循最佳实践写出专业的url。

比如对于资源,使用restful风格声明一下的url路由地址:

img

第一列是http请求方法,第二列是laravel内声明的路由规则,第三列是对应的控制器方法。上面的资源列表,涵盖了增删改查的所有动作,可以说很全面了。

如何快捷地生成上述控制器方法呢?使用laravel脚手架指令,在命令行运行:

php artisan make:controller EventsController --resource

我们使用 –resource 选项,会在目标控制器内生成上述的所有方法。

生成的文件位于 app/Http/Controllers/EventsController.php 内,初始化的内容如下:

img

这些方法真的是开箱即用啊。

那么,我们还要手动一条一条地声明上面的那些路由条目吗?那真是噩梦啊。还好,laravel帮我们做好了,只用Route类的 resource 方法注册资源就可以了:

Route::resource('events', 'EventsController');

使用资源路由方法,只用指定路由名称,和对应的控制器方法,就可以不用繁琐地写那些路由,和控制器方法了。

DM建站系统幼儿教育机构网站模板1.62
DM建站系统幼儿教育机构网站模板1.62

DM建站系统幼儿教育机构网站模板,DM企业建站系统。是由php+mysql开发的一套专门用于中小企业网站建设的开源cms。DM系统的理念就是组装,把模板和区块组装起来,产生不同的网站效果。可以用来快速建设一个响应式的企业网站( PC,手机,微信都可以访问)。后台操作简单,维护方便。DM企业建站系统安装步骤:第一步,先用phpmyadmin导入sql文件。 第二步:把文件放到你的本地服务器,或上传到

下载

为方便展示,我们把数据渲染到视图文件,首先创建 resources/views/events/index.blade.php 视图文件,使用默认的布局文件,填充以下代码:

@extends('layouts.app')
@section('content')
    

Events

@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);

有了以上的数据,在视图内简单地遍历输出内容,修改视图文件如下:

Events

    @forelse ($events as $event)
  • {{ $event->name }}
  • @empty
  • No events found!
  • @endforelse

模板文件内@forelse 方法会判断是否 $events 变量至少有一个元素可供遍历,如果没有就输出 @empty区块的内容。在浏览器内访问路由地址,输出内容大致如下图。因为使用的Faker填充的伪数据,所以看上去是这样的:

img

如果数据量太大,这一页估计要加载很久,列表很长。所以需要分页了。加入分页功能,使用的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() !!}

生成的导航条如下:

img

写在最后

本文简明扼要地介绍了laravel数据库填充所使用的方法,我们可以手动填充,

也可以使用第三方库填充伪数据,效率明显提升很多。也只要准备好了数据,

才能谈得上业务逻辑和接口对接。这些数据也是应用程序的基础,所以很重要。

本文是对上一章所述laravel数据库迁移功能的补充。数据库迁移是一个比较大的动作,

特别是已经上线生产的应用数据库,如果非到更新迁移的地步不可,需要预期做好演练,

以应对可能的突发事故。                                                     

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2817

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1692

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1549

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

1036

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1485

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1256

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1589

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1307

2023.11.13

c++空格相关教程合集
c++空格相关教程合集

本专题整合了c++空格相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP6.x API接口--十天技能课堂
ThinkPHP6.x API接口--十天技能课堂

共14课时 | 1.1万人学习

Django DRF 源码解析
Django DRF 源码解析

共21课时 | 1.4万人学习

JFinal在线手册
JFinal在线手册

共69课时 | 41万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号