У меня 2 модели и их отношения. Первый класс называется «Документо»:
class Documento extends Model
{
protected $table = 'documento';
protected $primaryKey = 'cod_documento';
public function emisor()
{
return $this->belongsTo('App\Emisor', 'cod_emisor', 'cod_emisor');
}
}
Второй называется «Эмисор»:
class Emisor extends Model
{
protected $table = 'emisor';
protected $primaryKey = 'cod_emisor';
public function documentos()
{
return $this->hasMany('App\Documento', 'cod_emisor', 'cod_emisor');
}
}
Отношение моделей один ко многим (один эмиссор имеет много документов, а один документ имеет только одного эмиссора).
В Thinker я пытаюсь получить эмиссор из документа, и это хорошо работает:
>>> Documento::find(1)->emisor->name
=> "Emisor Name"
Но когда я пытаюсь сделать Eager Загрузка эмиссора в документ, это «не получается»:
>>> Documento::find(1)->with('emisor')->count();
=> 94041
Я ожидал одного результата, но запрос вернул 94041 документов.
Почему это происходит? Как получить один документ с вложенным эмиссором?