Hospital Table
id | name | address
-----------------------
Hospital_Key Table
id | hospital_id(fk of Hospital Table) | type
-----------------------------------------------
Hospital_Column Table
id | hospital_id(fk of Hospital Table) | name
---------------------------------------------------------
Hospital_fields Table
id | Hospital_Key_id(fk of Hospital_Key Table) | Hospital_col_id(fk of Hospital_Column Table) | data
------------------------------------------
---------------------------------------------------------------
Я хочу реплицировать / клонировать все данные для любой записи и дочерних записей. Например, таблица больницы для одной записи. Получите данные из Hospital, Hospital_Key, Hospital_Column и реплицируйте все данные в той же таблице с новыми первичными ключами.
$input = $request->all();
$library = Library::with('key', 'col','key.field')->findOrFail($input['lib_id']);
$new = $library->replicate();
$new->user_id = Auth::id();
$new->privacy_setting = 'Private';
$new->push();
$library->relations = [];
$library->load('key', 'col','key.field');
$relations = $library->getRelations();
foreach ($relations as $relation => $items) {
foreach ($items as $item) {
$newfield = $new->{$relation}()->create($item->toArray());
}
}
Приведенный выше код копирует записи Hospital, Hospital_Key, Hospital_Column. Приведенный выше код не копирует записи Hospital_fields (внук)
Отношения: Больница hasmany Hospital_Key, Больница hasmany Hospital_Column,Hospital_Key hasmany Hospital_fields Как реплицировать Hospital_fields Данные таблицы