如何克隆laravel 5.2中所有关系的雄辩对象

时间:2016-08-20 06:29:06

标签: php laravel activerecord laravel-5 eloquent

我希望从现有的雄辩模型中克隆其所有关系,而不使用关系循环,因为我可能会在将来扩展关系。现在我有一个订单模型:

$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();

这使得一个没有任何关系的新模型。

2 个答案:

答案 0 :(得分:1)

您可以使用观察者模式来更新关系记录。阅读Link

答案 1 :(得分:-2)

如果我说错了,请尝试以下方法: $clone = $order? :d