我是Laravel的新手,并负责重新设计现有应用程序。当前,我最大的障碍是,将通过外部API访问所有数据,而不是数据库。我已经以这种方式创建了其他几个应用程序,并且非常舒适地使用外部API。但是为了不完全重写这个新项目,我需要找出一种用新API替换旧数据库的方法。
我发现https://github.com/jenssegers/model似乎具有我需要的功能,该功能可以将Eloquent(似乎全部与数据库交互有关)替换为模型,该模型可以转换API使用量,从而能够使用Eloquent功能,例如first,last, ,等等。
旧数据库有一个名为“ StaticPages”的表,因此我创建了一个扩展jenssegers / model的新模型:
<?php
namespace App;
// use Illuminate\Database\Eloquent\Model;
use \Jenssegers\Model\Model as EloquentLike;
class StaticPage extends EloquentLike
{
protected $hidden = [];
protected $casts = [
'sampleId' => 'string',
'ID' => 'string',
'CreateDate' => 'datetime',
'UpdateDate' => 'datetime',
'Status' => 'string',
'Page' => 'string',
'SiteVar' => 'string',
'Content' => 'string',
];
protected $guarded = [
'sampleId',
'ID',
];
protected $fillable = [
'CreateDate',
'UpdateDate',
'Status',
'Page',
'SiteVar',
'Content',
];
}
但是现在我不确定如何将数据从外部API提取到此模型中(它是处理程序,存储库还是什么)。尽管来自API的数据与数据库具有所有相同的字段,但它不再是名为“ StaticPages”的“表”,而现在是名为“ 3827”的数据存储。
因此,我试图进行重构,以便可以获取现有呼叫:
$sp = StaticPage::where('group', '=', $group)->orderBy('page', 'asc')->paginate(20);
要返回相同的记录,它会从先前的数据库查询API的世界。
有人知道我是否可以使用任何资源来解决这个问题。当我在Laravel中搜索如何将API用作数据库时,我能找到大量有关如何使用Laravel创建API的信息,但关于如何用API替换数据库的一切(除了可能的话)。