回归雄辩关系依赖于模型中的场域价值

时间:2015-09-17 18:10:05

标签: php laravel eloquent

假设我有一个模型,我想返回一个关系,但它取决于模型属性的值。我在我的模型中试过这个:

public function paymentType(){
    if($this->type > 1) return $this->hasOne(PaymentType::class, 'type', 'type');
    if($this->type == 1) return $this->hasOne(PaymentType::class, 'payment_type', 'pay_type');
}

当我有一个模型实例时,我可以将此关系称为正常,但是当我尝试加载并调用with('paymentType')时,我得到异常Call to a member function addEagerConstraints() on null

1 个答案:

答案 0 :(得分:1)

我认为你出现急切加载的问题是因为模型尚未填充值。尝试使用$this->type检查模型的类型违背了急切加载的性质。

您可以选择:

A)使用延迟加载,以便在调用关系之前在模型中填充type,或

B)Use eager loading constraints