Php 返回依赖于模型中字段值的雄辩关系
假设我有一个模型,我想返回一个关系,但它取决于模型属性的值。我在我的模型中尝试了这一点:Php 返回依赖于模型中字段值的雄辩关系,php,laravel,eloquent,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_ty
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')调用
,
时,我得到了对成员函数AddagerConstraints()的异常调用在null上,我可以想象,由于模型还没有填充值,因此会出现您的急切加载问题。尝试使用$this->type
检查模型的类型违背了快速加载的本质
您可以选择:
A) 使用延迟加载,以便在调用关系之前在模型中填充type
,或者
B) 在使用paymentType()
关系的查询中,是否有with()
调用?是的,我应该在问题中指出,当我有一个模型实例时,该方法工作正常。但是,当我尝试使用('paymentType)
加载关系时,会出现异常。修正了我的问题。