laravel 利用 resource来做模型和返回数据的中间层处理,在运用的时候应该怎么使用呢?
- 看了文档的例子,介绍了一个model对应一个Resource,或者一个model对应一个ResourceCollection,假设我一个controller中写了多个接口,返回的数据格式都要求不一样该怎么处理
- 通过关联关系查找出来的数据,比如一个老师有2个班级,每个班级有5门课程
关系如下
老师
=== 班级一
====课程一
====课程二
......
=== 班级二
====课程一
====课程二
返回的格式需要对老师的数据进行过滤,对班级、课程同样进行过滤,
返回的格式同上,或者老师、班级、课程三类同级,该如何是好?
文档上使用条件关联来处理,莫非我创建一个接口,需要写三个resource?那万一单独获取其中某一个班级或课程信息,返回的格式与之前写的resource不同的话怎么办,在创建一次?
这个问题本质是复杂api resource如何构建。
简单api resource直接通过Resource实现,复杂的需要通过ResourceCollection实现。
下面是个简单的示范例子。
<?php
class TeaController {
}
class TeacherService
{
}
class GradeCollection {
}
上面的例子省略了重要的业务逻辑部分,因为每个业务模型的业务逻辑不尽相同。
但是基本说明了如何处理复杂ResourceCollection。
本质是构造和生成ResourceCollection.