Laravel - 在使用远程 API 获取数据时,如何将模型传递给视图而不查询数据库?

问题描述

我正在开发一个与外部/远程 Rest API 完全集成的 Laravel Web 项目。我正在尝试通过隐式路由绑定将从 API 返回的模型对象传递到 GET 路由,但 Laravel 所做的认行为是尝试从数据库中引用此模型对象,而我的应用程序中没有定义数据库连接。

解决方法

您可以customize the resolution logic

class ApiModel
{
    /**
    * Retrieve the model for a bound value.
    *
    * @param  mixed  $value
    * @param  string|null  $field
    * @return \Illuminate\Database\Eloquent\Model|null
    */
    public function resolveRouteBinding($value,$field = null)
    {
        return Http::get('api/path/for/model')->json();
    }
}

如果您需要进一步修改模型类以获得类似 eloquent 的模型,您可以使用或借用 jenssegers/model