#laravel #laravel-8
Вопрос:
Как построить цепочку соотношений с помощью Laravel. У меня есть таблица с 2 столбцами в первом идентификаторе донора и во втором идентификаторе результирующей записи. Таким образом, последний также может стать донором и так далее. Как вывести все идентификаторы доноров для окончательной записи. https://i.imgur.com/ducWcck.gif Например, если из него была запись 239345, то было создано 239351, из которого, в свою очередь, 239352. Как отобразить 239345, 239351?
Я не могу придумать ничего лучше, чем петля, что-то вроде этого.
$ids = []; $child = CombinedOrder::query()->where('to_order_id', $current)->first(); $lastId = $child->from_order_id; array_push($ids, $child->to_order_id); array_push($ids, $lastId); while (!is_null($lastId) amp;amp; !is_null($child)) { $lastObj = CombinedOrder::query()->where('to_order_id', $lastId)->first(); $lastId = is_null($lastObj) ? null : $lastObj->from_order_id; if (!is_null($lastId)) { $ids[] = $lastId; } }