Laravel Dingo从多个表获取数据

时间:2018-08-25 07:14:24

标签: php laravel dingo-api

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

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');
    }
}

目前,它返回一个空的features属性数组。

1 个答案:

答案 0 :(得分:0)

如果您使用的是隐式模型绑定,则由于模型已经加载,因此在控制器操作中延迟加载({@ 1}}的延迟

Optional<User> searchedUser = userList.stream().filter(User::getId.equals(userId).findFirst();

if(searchedUser.isPresent()) { //do something and handle missing }

如果没有隐式模型绑定,则在模型加载时会急切地使用features加载public function show(Site $site) { $site->load('features'); return $site; }

features

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