Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何保存本地数据和API之间的关系(多对多)?_Php_Laravel_Api_Laravel 5_Many To Many - Fatal编程技术网

Php 如何保存本地数据和API之间的关系(多对多)?

Php 如何保存本地数据和API之间的关系(多对多)?,php,laravel,api,laravel-5,many-to-many,Php,Laravel,Api,Laravel 5,Many To Many,我正在寻找一种适当的方法来处理和存储数据库中的数据和来自第三方API的数据之间的关系。我用的是拉威尔5 例如,我有一个项目模型(id、名称)。另外,我有一个API,我可以从PHP调用它,并通过文章列表返回JSON 我需要在项目和文章之间保存一个连接表的多对多关系。 因为Articles数据来自API,所以我没有包含Articles的本地表,所以我不能使用Eloquent来处理关系 我的问题是如何把它做好 我想到了两种可能的解决方案: 1.)使用一些可以将API“映射”为雄辩模型的库。但我只找到了

我正在寻找一种适当的方法来处理和存储数据库中的数据和来自第三方API的数据之间的关系。我用的是拉威尔5

例如,我有一个项目模型(id、名称)。另外,我有一个API,我可以从PHP调用它,并通过文章列表返回JSON

我需要在项目和文章之间保存一个连接表的多对多关系。 因为Articles数据来自API,所以我没有包含Articles的本地表,所以我不能使用Eloquent来处理关系

我的问题是如何把它做好

我想到了两种可能的解决方案:

1.)使用一些可以将API“映射”为雄辩模型的库。但我只找到了废弃的项目。总的来说,在这样简单的情况下,这个解决方案看起来有些过头了

2.)使用查询生成器并手动处理此情况,以在联接表中保存有关项目和项目之间关系的数据。
但如果我使用此选项,则很难处理更新等问题。

大概在您提出请求时,您知道该请求属于哪个项目吗?如果是这样,为什么不在项目和json响应之间建立映射呢?你知道这些文章的结构吗?本例中的文章将有一个非常简单的结构:只有名称和ID。是的,我知道该请求属于哪个项目。我要说的是,不要将其过分复杂化。只需从api手动设置
$model->相关的\u id\u$model->save()
,到此为止。任何解决方案本质上都将覆盖Elount,以使其与API源一起工作,这不是一项简单的任务。@apokryfos这是一个与连接表的多对多关系,因此$model->related_id不是一个选项。您可以为透视表创建一个模型,并在这种情况下进行扩展。当您发出请求时,您可能知道该项目是哪个请求属于哪一个?如果是这样,为什么不在项目和json响应之间建立映射呢?你知道这些文章的结构吗?本例中的文章将有一个非常简单的结构:只有名称和ID。是的,我知道该请求属于哪个项目。我要说的是,不要将其过分复杂化。只需从api手动设置
$model->相关的\u id\u$model->save()
,到此为止。任何解决方案本质上都将覆盖Elounce,以使其与API源一起工作,这不是一项简单的任务。@apokryfos这是一个与连接表的多对多关系,因此$model->related_id不是一个选项。您可以为透视表创建一个模型,并在这种情况下进行扩展。