有一种关系取决于规则

时间:2018-09-09 11:11:19

标签: php laravel model relationship rules

有没有办法使一个模型与一个依赖于rule_id的两个不同模型之一建立关系,就像这样:

 if($this->rule_id==1)
     return $this->hasOne('App\model2');
 else
     return $this->hasOne('App\model3');

如果您有更好的方法或以某种方式起作用,请提前通知我

2 个答案:

答案 0 :(得分:0)

更好地声明与两个模型的关系。迟早它将同时满足两个条件并与两个模型建立关系。为什么不首先声明两者呢?

答案 1 :(得分:0)

您可以像这样在模型中构建一个自定义函数,并带有用于检查它的参数

public function test($val){
    if($val==1)
       return $this->hasOne('App\model2');
    else
       return $this->hasOne('App\model3');
}

然后您可以在视图中调用该函数

$your object data sent from controller ->test(1);