我正在尝试从一对多关系的两个表中检索数据。我需要它返回一个响应,因为它将同时显示。但是,我不明白如何返回扩展对象。现在我在控制器中有类似的东西
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属性数组。
答案 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的详细信息