我有两个彼此分开的系统。为了让他们沟通我已经建立了一个API。两个系统都有共同的模型,其中一个是具有所有关系的项目模型。
在系统A中,要发送项目及其关系,请执行以下操作。
$client = new GuzzleHttp\Client();
$jsonProject = json_encode(Project::with('projectType', 'projectType.projectTypeData',
'projectAssets', 'projectAssets.projectAssetsData')->find($project->id));
$req = $client->request('POST', 'https://someurl/postProject', [
'body' => json_encode($jsonProject),
'headers' => [
'Content-Type' => 'application/json',
'Content-Length' => strlen($jsonProject),
]
]);
在系统B中我设置了路线,当发布上述内容时,会触发以下内容
public function store(Request $request)
{
$project = $request->all();
dd($project);
}
当我从系统A发出post请求时,由于系统B中的转储,我看到类似这样的内容(我删除了大量输出以减少代码)。
array:17 [
"id" => 3
"projectName" => "Test Project"
"user_id" => 1
"contact" => "John Doe"
"project_type" => array:7 [
"id" => 3
"project_id" => 3
"project_type_data" => array:1 [
0 => array:8 [
"id" => 5
"projectType" => "Standard"
]
]
]
"project_assets" => array:7 [
"id" => 2
"project_id" => 3
"project_assets_data" => array:4 [
0 => array:8 [
"id" => 5
"label" => "Logo"
"altTag" => ""
"urlPath" => ""
"projectAssetsId" => 2
]
]
]
]
所以一切似乎都很好。我的问题是这个。系统B现在有一堆json数据,包含制作模型所需的所有数据。如果我能够通过api(而不是json)发送模型,那么我可以轻松地在系统B中创建模型。因为它是json数据但是我无法解码它,因为它不是字符串,我是否必须开始循环这一切以制作我的模型?