0

私は2つのモデルとそれらの関係を持っています。最初のクラスは「Documento」と呼ばれます:

class Documento extends Model
{
    protected $table = 'documento';
    protected $primaryKey = 'cod_documento';

    public function emisor()
    {
        return $this->belongsTo('App\Emisor', 'cod_emisor', 'cod_emisor');
    }
}

2 つ目は「Emisor」と呼ばれます。

class Emisor extends Model
{
    protected $table = 'emisor';
    protected $primaryKey = 'cod_emisor';

    public function documentos()
    {
        return $this->hasMany('App\Documento', 'cod_emisor', 'cod_emisor');
    }
}

モデルの関係は 1 対多です (1 つのエミッターには多くのドキュメントがあり、1 つのドキュメントには 1 つのエミッターしかありません)。

Thinker では、ドキュメントから emisor を取得しようとしていますが、これはうまく機能します。

>>> Documento::find(1)->emisor->name
=> "Emisor Name"

しかし、ドキュメント内の emisor を Eager Loading しようとすると、「失敗」します。

>>> Documento::find(1)->with('emisor')->count();
=> 94041

1 つの結果を期待していましたが、クエリは 94041 個のドキュメントを返します。

なぜこうなった?ネストされたemisorで1つのドキュメントを取得するには?

4

1 に答える 1