Laravel Dingo 从多个表中获取数据

Laravel Dingo get data from multiple tables

我正在尝试从具有一对多关系的两个表中检索数据。我需要它在一次响应中达到 return,因为它将同时显示。但是,我不明白如何 return 扩展对象。现在我在控制器中有这样的东西

public function show(Site $id)
    {
        foreach ($id->features() as $feature) {
            $id->features[] = $feature;
        }

        return $id;
    }

这是我的模型

class Site extends Model
{
    protected $fillable = ['path', 'site_link'];

    public $timestamps = false;

    public function features() {
        return $this->hasMany('App\SiteFeature');
    }
}

现在 return 是一个空的特征数组 属性。

如果您使用的是隐式模型绑定,那么在控制器操作中使用 Lazy eager Load features 关系,因为模型已经加载

public function show(Site $site)
{
    $site->load('features');

    return $site;
}

如果没有隐式模型绑定,则在模型加载时使用 with 急切加载 features

public function show($id)
{
    $site = Site::with('features')->find($id);

    return $site;
}

检查加载关系的详细信息https://laravel.com/docs/5.6/eloquent-relationships#constraining-eager-loads