Как получить данные из нескольких таблиц с помощью Laravel Eloquent - PullRequest
0 голосов
/ 05 октября 2019

У меня есть 2 таблицы с именем jobs & job_records. Его отношения, как показано ниже:

Модель JobRecords

public function job()
{
   return $this->belongsTo(Job::class);
}

Модель задания:

public function jobRecord()
{
   return $this->hasOne(JobRecord::class);
}

Таблица заданий имеет 2 столбца, которые мне нужно отобразить вместе с моим табличным представлением job_records. Это total_pges & status.

В моем контроллере JobRecords я попробовал следующий метод. Я получаю сообщение об ошибке Call to undefined relationship.

JobRecordController:

$job_records = JobRecord::whereStatus('In Progress')
  ->with('jobs', 'jobs.status', 'jobs.total_pges')
  ->get();
return DataTables::of($job_records)

Я все еще начинаю с Laravel и PHP. Я чувствую, что в отношениях что-то не так. Но я не мог понять, что это такое. Кто-нибудь может мне помочь с этим вопросом?

Ответы [ 2 ]

0 голосов
/ 05 октября 2019

В вашей модели JobRecord измените корабль отношений как

 public function job()
 {
  return $this->hasOne('App\Models\Job','foreign_key','local_key');
 }

Аналогично, в модели задания

 public function job()
 {
  return $this->belongsTo('App\Models\JobRecord','foreign_key','local_key');
 }

Замените foreign_key и local_key соответствующими значениями ...

0 голосов
/ 05 октября 2019

Я удалил свой предыдущий ответ. Что вы пытаетесь сделать именно? Вы не можете использовать «jobs» в «with function» без определения «jobs» как функции в модели.

Если вы измените его на «job» (вместо «jobs»), тогдаработать, но я не знаю, хотите ли вы этого. В своем запросе вы говорите, что у записи много заданий? Но ваша модель не определяет это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...