Добрый день, у меня возникла проблема, когда я пытаюсь получить запись из 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), как я могу загружать таблицу?
Благодарю.
Вы должны попытаться указать имя таблицы для LeadDetailEmails
следующим образом:
class LeadDetailEmails extends Eloquent
{
protected $table = 'leadDetailEmails';
public function lead()
{
return $this->belongsTo('Leads');
}
}
И если у вас есть больше отношений, которые вы хотите получить с энергичной загрузкой, вы можете сделать это следующим образом:
$result = Leads::with('leademail', 'leadcontact')->get();
Других решений пока нет …