Laravel 5 принадлежит к отношению в одной цепочке таблиц

У меня есть такая модель

Document [id, text, previous_document_id]

И когда я получаю данные, я могу использовать это отношение:

public function previous()
    {
        return $this->belongsTo('App\Models\Document', 'previous_document_id');
    }

чтобы получить документ с предыдущим документом. Но бывает такая ситуация: документ-> предыдущий_документ-> предыдущий_документ и так далее. Как мне получить эту цепочку?
Редактировать:
Я не знаю, сколько существует предыдущих документов

Edit2:
Решение:

public function previous()
{
return $this->belongsTo('App\Models\Document', 'previous_document_id')->with('previous');
}

Вы можете связать отношения: $document->previous->previous->previous

Jonas Staudenmeir 31.10.2018 01:12

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

Maxim Stogniy 31.10.2018 01:24

Существуют пакеты, которые могут помочь вам управлять вложенными древовидными структурами. Например. github.com/lazychaser/laravel-nestedset

newUserName02 31.10.2018 01:26

В противном случае вы можете использовать цикл while, чтобы продолжить поиск предыдущего документа, пока значение не станет null.

fubar 31.10.2018 01:28

Вы можете добавить ->with('previous') в свои отношения. Тогда Document::with('previous')->get() загрузит всю цепочку.

Jonas Staudenmeir 31.10.2018 01:30

Предпочитаю вложенную структуру Посмотрите на этот пакет, спасибо

Maxim Stogniy 31.10.2018 01:34

-> Тогда Document :: with ('previous') -> get () загрузит всю цепочку. Не работает.

Maxim Stogniy 31.10.2018 01:41

Что именно не работает? Вы изменили отношение к return $this->belongsTo('App\Models\Document', 'previous_document_id')->with('previous');?

Jonas Staudenmeir 31.10.2018 01:50

Упс ... это было так просто ... facepalm Спасибо!

Maxim Stogniy 31.10.2018 03:15
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
9
339
0

Другие вопросы по теме