Самостоятельные отношения один-ко-многим в Laravel - PullRequest
0 голосов
/ 23 марта 2020

Я пытаюсь создать базу данных для системы заявок. В настоящее время я борюсь с самоотносительными отношениями Модели.

Билеты могут иметь ноль-ко-многим «связанных билетов». Если билет связан с другим билетом, он должен быть доступен по отношению $ticket->relatedTickets.

Например: Ticket # 1 относится к ticket # 2 . Поэтому тикет # 2 также связан с тикетом # 1 .

Я не могу получить отношение $ticket->relatedTickets для возврата тикет # 1 если я позвоню на тикет # 2 .

Однако на тикет # 1 он вернет тикет # 2 правильно.

Я создал следующую модель:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Ticket extends Model
{
    /**
     * The attributes that aren't mass assignable.
     *
     * @var array
     */
    protected $guarded = [];

    /**
     * Get all related tickets.
     */
    public function relatedTickets()
    {
        return $this->belongsToMany('App\Ticket', 'ticket_related', 'ticket_id', 'related_id');
    }
}

Моя база данных выглядит (как-то) так:


+-------------+
|   tickets   |
+-------------+
| id          |
| user_id     |
| service_id  |
| title       |
| description |
| is_open     |
| due_date    |
| created_at  |
| updated_at  |
+-------------+

+----------------+
| ticket_related |
+----------------+
| ticket_id      |
| related_id     |
| created_at     |
| updated_at     |
+----------------+

Как я могу сделать это отношение двунаправленным, так, если два билета связаны, он всегда возвращает другой билет?

...