1
私は2つのモデル、すなわちProduct
,ProductPrice
で小さなシステムを作ろうとしています。ここで追加クエリなしでLaravelの子どもから親を取得
は、製品のモデルである:
class Product extends Model
{
protected $with = ['prices'];
public $tax_rate = 0.2;
public function prices()
{
return $this->hasMany(ProductPrice::class);
}
}
私はより明確にするため、ここでtax_rate
定数を置くが、現実の世界で、それは別の関係によって処理されます。
ここで最も重要なことはtax_rate
がここProduct
モデル
のプロパティがProductPrice
モデルであることを示します。
class ProductPrice extends Model
{
protected $appends = ['tax_included_price'];
public function getTaxIncludedPriceAttribute()
{
return (1 + $this->product->tax_rate) * $this->price;
}
public function product()
{
return $this->belongsTo(Product::class);
}
}
今の私はいくつかに$product->toArray()
を使用する必要があることを想像してみましょうモデル。この例では、私のgetTaxIncludedPriceAttribute()
メソッドがproduct
属性を見つける新しい要求をするため、無限ループの例外を取得します。私は親を介してにアクセスする場合
は、だから私はProductPrice
モデルでProduct
親にアクセスすることができ、余分なクエリだから、