我如何从Laravel中的hasMany()关系中获得所有结果?
例如,我有一个产品,我有一个基础产品。
在产品的模型中,我指定了以下内容:
//In class Product
public function BaseProduct()
{
return $this->belongsTo("BaseProduct", "BaseProductId");
}
在基础产品中,我指定了以下关系:
//In class BaseProduct
public function Products()
{
return $this->hasMany("Product", "ProductId");
}
如果我选择一个产品,就像这样:
$Product::first()
我可以通过执行以下操作来获取基本产品:
$Product::first()->BaseProduct()->get();
我该如何获取 BaseProduct 的数组,而不是从中获取结果数组,这样我就可以获取 BaseProduct 的所有子级,即具有与此 BaseProduct 相关的外键的所有产品。Model
我已经尝试过,但这不是一个有效的方法。BaseProduct()->all();
编辑:
我已经创建了以下函数调用链 - 但它很糟糕。
return BaseProduct::find(Product::first()->BaseProduct()->getResults()['BaseProductId'])->Products()->getResults();
最终编辑:
我在模型中犯了一个错误。在函数中,我指定了应该在哪里。BaseProduct
Products()
return $this->hasMany("Product", "ProductId");
ProductId
BaseProductId
修复后,我可以成功使用:
Product::first()->BaseProduct->products;
正如Sheikh Heera所解释的那样。