如何根据从移动应用程序接收的JSON在Laravel/Lumen中制作特定的模型?



我正在构建一个web应用程序(与Lumen),它将从移动应用程序接收JSON数据并存储它。它还会以相同的JSON格式发送数据。我在Kotlin中做了手机app中数据的模型。它将被改造库序列化为JSON。

data class Mouse(
val id: Int,
val name: String
)
data class Occasion(
val id: Int,
val name: String
)
data class Location(
val id: Int,
val name: String
)
data class Session(
val id: Int,
val name: String
)
data class Project(
val id: Int,
val name: String
)
data class LocOccLMouse(
val loc: Location,
val occ: Occasion,
val lisMouse: List<Mouse>
)
data class SesLOLM(
val ses: Session,
val lisLOLM: List<LocOccLMouse>
)
data class SyncClass(
val prj: Project,
val lisSesLOLM: List<SesLOLM>
)

所以我将从移动应用程序发送SyncClass。

但是我不知道如何在php Lumen中制作相同的模型。这样我就可以接收模型并从中提取数据。并且还使用它来响应移动应用程序的一些数据(以相同的JSON格式)。是否有可能从基本类创建模型,或者他们需要从雄辩的模型继承?我如何创建这个模型呢?

这里有很多不同的问题。首先,你想用Lumen创建一个可以接收和发送JSON的API。其次,您希望将后端中的JSON转换为Eloquent Model。lumen可以用Responses将你的雄辩模型翻译成Json。对于您的主要任务,您将创建一个控制器来处理来自移动应用程序的请求,如下所示:

class MyClassNameApi extends controller{
public function index(CustomRequestValidator $request){
//Do the job aka $model = new Model($request->all())
return responses()->json($customReponse,$httpCode)  
}
}

我真的建议你检查一下流明的Requests生命周期。也不要忘记创建一些工作流UML来帮助你。

关于Model

示例:

<?php 
namespace AppModels
use IlluminateDatabaseEloquentModel;
class LocOCCLMouse extends Models{
public function loc(){
$this->hasOne(Location::class)
}
public function occ(){
$this->hasOne(Occasion::class)
} 
public function lisMouse(){
$this->hasMany(Mouse::class)
}
//Etc....
}

我希望我能帮到你。

最新更新