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

How to make a specific model in Laravel/Lumen according to JSON received from mobile app?

我正在构建一个网络应用程序(使用 Lumen),它将从移动应用程序接收 JSON 数据并存储它。它还会以相同的 JSON 格式发送数据。我已经在 Kotlin 的移动应用程序中制作了数据模型。改造库将序列化为 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 流明中制作相同的模型。这样我就可以接收模型并从中提取数据。还可以使用它来响应移动应用程序的一些数据(采用相同的 JSON 格式)。是否可以从基本 类 创建模型,或者它们是否需要从 eloquent 模型继承?我该如何创建该模型?

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

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

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

关于Model

LocOccLMouse 示例:

<?php 
namespace App\Models
use Illuminate\Database\Eloquent\Model;

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....
}

希望能帮到你