Есть ли одно отношение зависит от правил - PullRequest
0 голосов
/ 09 сентября 2018

Есть ли способ сделать так, чтобы одно отношение между одной моделью и одной из двух разных моделей зависело от rule_id, например:

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

если у вас есть лучший способ или это работает как-то, просто обратите внимание, спасибо заранее

Ответы [ 2 ]

0 голосов
/ 09 сентября 2018

вы можете создать пользовательскую функцию в вашей модели, например, с параметром для ее проверки

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);
0 голосов
/ 09 сентября 2018

Лучше объявить отношения с обеими моделями. Рано или поздно он попадет в оба условия и установит отношения с обеими моделями. Почему бы не объявить с обоими в первую очередь?

...