php – 返回依赖于模型中场的价值的雄辩关系

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

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');
}

当我有一个模型的实例时,我可以调用这种关系,但是当我尝试加载,并使用(‘paymentType’)调用时,我得到异常调用成员函数addEagerConstraints()on null

最佳答案
我会想象你出现了急切加载的问题,因为模型还没有填充值.尝试使用$this->类型检查模型的类型违背了急切加载的性质.

您可以选择:

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

B)Use eager loading constraints

转载注明原文:php – 返回依赖于模型中场的价值的雄辩关系 - 代码日志