Laravel красноречивые многоуровневые отношения - PullRequest
0 голосов
/ 27 мая 2020

Хорошо, поэтому я в основном пытаюсь получить все коды animal_registry на основе идентификатора пользователя.

Идея состоит в том, что у 1 пользователя много заданий. Задания состоят из множества « данных заданий ». Данные о вакансиях содержат много записей « Реестр животных ».

Это мои отношения Ссылка на отношения между изображениями (щелкните)

И это мои отношения в Laravel

class User
{
    public function jobs()
    {
        return $this->hasMany('App\Models\RegistryJobs', 'employee', 'id');
    }
}


class RegistryJobs extends Model
{
    protected $table = "registry_jobs";

    protected function jobsData()
    {
        $this->hasManyThrough('App\Models\AnimalRegistry', 'App\Models\RegistryJobsData', 'id', 'animal_registry_id');
    }
}

class RegistryJobsData extends Model
{
    protected $table = "registry_jobs_data";

    public function jobs()
    {
        $this->belongsTo('App\Models\RegistryJobs', 'id', 'registry_jobs_id');
    }

    public function animals()
    {
        $this->hasMany('App\AnimalRegistry', 'id', 'animal_registry_id');
    }
}

class AnimalRegistry extends Model
{
    protected $table = "animal_registry";

}

И теперь я пытаюсь запросить его с контроллера способом

$data = User::whereHas('jobs', function ($query)  {
    $query->where('id', 1);
})->get();

Но я не могу получить доступ к свойствам из Реестр животных.

1 Ответ

0 голосов
/ 27 мая 2020

Можете ли вы попробовать вот так:

 public function animals(){
     return $this->hasManyThrough('App\Registry_Jobs_data','App\Registry_Jobs', 'employee', 
    'registry_jobs_id', 'id' ,'id')->join('//Do the joining')->select();
 }

Проверьте hasManyThrough Я не уверен ..

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