【问题标题】:How to clone an eloquent object with all relations in laravel 5.2如何在laravel 5.2中克隆具有所有关系的雄辩对象
【发布时间】:2016-12-27 07:57:16
【问题描述】:

我想从现有的 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();

这会创建一个没有任何关系的新模型。

【问题讨论】:

    标签: php laravel activerecord laravel-5 eloquent


    【解决方案1】:

    如果我理解你是正确的,请尝试以下操作: $clone = $order ? :D

    【讨论】:

      【解决方案2】:

      您可以使用观察者模式来更新有关系的记录。参考Link

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-04-11
        • 2016-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-01-10
        • 2021-07-06
        相关资源
        最近更新 更多