HasMany定义与范围有问题
HasMany定义与范围有问题
我在"Dosser"模型中定义了以下函数:
public function billingDocs() { return $this->hasMany(BillingDoc::class); } public function regularInvoiceDocs() { return $this->billingDocs()->regularType(); }
在"BillingDoc"模型中:
public function scopeRegularType(Builder $builder) { $builder->where('billing_type_id', BillingType::named('regular')->id); }
现在,如果我在"Dossier"模型中的一个函数中调用`$this->regularInvoiceDocs`,它会返回一个空数组。但是如果我调用`$this->regularInvoiceDocs()->get()`,它会返回所需的项目。当然,如果我只调用`$this->billingDocs`,我也可以得到所需的项目。我认为使用带有范围条件的HasMany函数是可以的。我经常使用它而没有问题,我不明白这里发生了什么。提前感谢!