Laravel Eager Загрузка отношения один ко многим

Добрый день, у меня возникла проблема, когда я пытаюсь получить запись из 2 таблиц

нетерпеливая загрузка

class Leads extends Eloquent
{
public function leademail()
{
return $this->hasMany('LeadDetailEmails');
}
}

class LeadDetailEmails extends Eloquent
{
public function lead()
{
return $this->belongsTo('Leads');
}
}class Category extends BaseController
{
public function fetchRecord()
{
$result = Leads::with('leademail')->get();
}
}

LeadDetailEmails имеет внешний ключ, установленный в файле миграции.

$table->foreign('lead_id')->references('id')->on('leads')->onDelete('cascade');

Я получаю эту ошибку:

"message":"SQLSTATE[42S22]: Column not found: 1054 Unknown column 'lead_detail_emails.leads_model_id' in 'where clause' (SQL: select * from `lead_detail_emails` where `lead_detail_emails`.`leads_model_id` in (1, 2, 3))"

Что я могу сделать, чтобы исправить ошибку? Кроме того, если будет третья таблица (LeadDetailContact), как я могу загружать таблицу?

Благодарю.

0

Решение

Вы должны попытаться указать имя таблицы для LeadDetailEmails следующим образом:

class LeadDetailEmails extends Eloquent
{
protected $table = 'leadDetailEmails';

public function lead()
{
return $this->belongsTo('Leads');
}
}

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

$result = Leads::with('leademail', 'leadcontact')->get();
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]