Отношения с одной и той же таблицей (многие ко многим?) - Laravel - PullRequest
0 голосов
/ 29 мая 2019

В моей базе данных я должен сохранить людей и данные людей, которые связаны с первым.Например: отец, мать, сын, дочь и т. Д.

Затем проект базы данных, я сделал это следующим образом Является ли отношение многие ко многим, потому что человекЕсть много людей, связанных с этим.

Но я не уверен, что все в порядке ..

class Person extends Model
{
    protected $fillable = [
        'name', 
        'surname',
        'profile_picture'
         .....   
    ];

    public function relationships() 
    {
        return $this -> belongsToMany(Person::class);
    }
}

Когда я создаю отношение, я создаю третью таблицу миграции, вызываем person_person для сохранения идентификаторов и описания (папа, мамаСын, дочь)

это нормально, описать отношения таким образом?

    public function relationships() 
    {
        return $this -> belongsToMany(Person::class);
    }

Что мне добавить, чтобы завершить эти отношения успешно?

1 Ответ

1 голос
/ 29 мая 2019

Вам нужно будет определить таблицу, первичный и внешний ключи, поскольку Laravel, вероятно, не может определить это (попытается, но, вероятно, не удастся). Что-то вроде:

public function relationships(){
  return $this->belongsToMany(Person::class, "person_person", "id_person", "id_person_related")
  ->withPivot(["parentesco"]);
}

или аналогичный. Название таблицы немного неловко, подумайте о чем-то другом, например, 'relationships' или о чем-то, что передает больше значения.

Подробнее о том, как определить дополнительные параметры для belongsToMany()

, см. https://laravel.com/docs/5.8/eloquent-relationships#many-to-many.
...