Laravel 5.7 запрос с 3 таблицами - PullRequest
0 голосов
/ 23 сентября 2018

Я довольно новичок в Laravel и застрял в построении более сложного запроса:

У меня есть 3 таблицы с их моделями:

Коды:

  • идентификатор
  • описание
  • фактор

    public function purposes() {
        return $this->hasMany('App\Purpose', 'code_purposes', 'code_id', 'purpose_id'); 
    //I could be wrong here
    }
    

Назначение:

  • идентификатор
  • имя
  • описание

код_целевых:

  • код_ид
  • target_id

      public function codes() {
        $this->belongsToMany('App\Code'); //I could be wrong here
    }
    
    public function purposes() {
        $this->belongsToMany('App\Purpose'); //I could be wrong here
    }
    

Я хочу получить все коды с условием, когда цели name = 'some_name'

Я думал, что это будет легко с отношениями, но я не могу понятьэто из.

Так как мне сделать это в Laravel?

1 Ответ

0 голосов
/ 23 сентября 2018

В Code модель:

public function purposes() {
    return $this->belongsToMany('App\Purpose');
}

В Purpose модель:

public function codes() {
    return $this->belongsToMany('App\Code');
}

Теперь вы можете получать данные как:

$codes = Purpose::where('name', 'some_name')->first()->codes;

Имя таблицы отношений должно быть code_purpose.И не нужно никакой модели для этой таблицы.

Источник: Laravel Отношения ко многим ко многим

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