跨2个系统复制模型

时间:2016-08-19 10:44:26

标签: laravel laravel-5.2

我有两个彼此分开的系统。为了让他们沟通我已经建立了一个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数据但是我无法解码它,因为它不是字符串,我是否必须开始循环这一切以制作我的模型?

0 个答案:

没有答案