記事、建物、人物の 3 つのモデルを取得しました。
これらのモデルは、いくつかの方法で相互に参照する必要があります。たとえば、建物は $building->architects()、$building->owners() のように Person のコレクションを参照できる必要があり、記事は $article->authors() で Person のコレクションを参照し、Person はコレクションを参照する可能性があります。 $person->owned_buildings() のような建物の
各モデルには、混合モデルのコレクションを取得するための「参照」のような関数が必要です。
私はこれが次のようなもので可能であるべきだと考えています:
class Article extends Eloquent {
public function referenceable()
{
return $this->morphTo();
}
public function authors()
{
return $this->morphMany('Person', 'referenceable');
}
}
class Building extends Eloquent {
public function referenceable()
{
return $this->morphTo();
}
public function architects()
{
return $this->morphMany('Person', 'referenceable');
}
}
class Person extends Eloquent {
public function referenceable()
{
return $this->morphTo();
}
public function owned_buildings()
{
return $this->morphMany('Building', 'referenceable');
}
}
問題は、ピボット テーブルがどのように見えるかということです。