将数据从Laravel中的一个数据库列克隆到另一个数据库列

时间:2017-11-08 19:57:48

标签: mysql laravel clone

我的库存表格中有两列quantityremaining_quantity。我想在执行创建功能时将相同的数据从quantity复制到remaining_quantity。 Laravel中是否有任何功能?

2 个答案:

答案 0 :(得分:0)

你可以通过创建一个观察者来做到这一点。

1-在observers文件夹中创建一个名为app的文件夹。

2-创建名为MyModelObserver.php的文件,例如StockObserver.php

3-按以下方式准备课程:

<?php
namespace App\Observers;


class StockObserver
{
    //
}

在该课程中,您可以创建creatingcreatedupdatedupdateddeletingdeletedsavingsaved方法。他们的工作从他们的名字中显而易见。 有关详细信息,请参阅=&gt; https://laravel.com/docs/5.5/eloquent#events

例如,每次创建Stock模型的对象时,以下代码都会执行某些操作。

<?php
namespace App\Observers;


use App\Stock;

class StockObserver
{
    public function created(Stock $stock)
    {
        $stock->remaining_quantity = $stock->quantity;
        $stock->save()
    }
}

但是除非您在AppServiceProvide中观察到这些代码,否则所有这些代码都无效。因此boot中的AppServiceProvider方法会写下以下内容。

\App\Stock::observe(\App\Observers\StockObserver::class);

就是这样..希望它有所帮助。

答案 1 :(得分:0)

是的,有几种不同的方法可以做到这一点。一个简单,肮脏的方法就是只有两个查询,

$quantity = StockTable::find($id);
StockTable::create([
    'remaining_quantity' => $quantity->quantity
]);

因此,您获取要复制的记录,然后将其设置为创建记录中的剩余数量。