Как клонировать красноречивый объект со всеми отношениями в laravel 5.2

php laravel activerecord laravel-5 eloquent

1943 просмотра

2 ответа

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

$table->bigIncrements('id');
$table->unsignedBigInteger('customer_id');
$table->timestamps();

и заказ имеет много предметов:

$table->bigIncrements('id');
$table->unsignedBigInteger('order_id');
$table->unsignedInteger('quantity');

есть другие отношения 'sell_orders:

$table->bigIncrements('id');
$table->unsignedBigInteger('order_id');

но я знаю, что это должно быть больше, чем в будущем. Как я могу сделать клона из заказа и всех его отношений? Я нашел этот код:

$order = Order::find(1);
$clone = $order->replicate();
$clone->push();
$clone->save();

Это делает новую модель без каких-либо отношений.

Автор: train_fox Источник Размещён: 08.11.2019 10:57

Ответы (2)


1 плюс

Решение

Вы можете использовать Observer Pattern для обновления записей с отношением. Ссылка на ссылку

Автор: Parithiban Размещён: 20.08.2016 07:09

-2 плюса

Если я unterstand и правильный, попробуйте следующее: $clone = $order? : D

Автор: jiGL Размещён: 20.08.2016 07:26
Вопросы из категории :
32x32