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

Clone data from one to another database column in Laravel

我的股票 table 中有两列 quantityremaining_quantity。我想在执行创建功能时将相同的数据从 quantity 复制到 remaining_quantity。 Laravel 中有什么功能吗?

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

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

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

3- 像下面这样准备你的 class:

<?php
namespace App\Observers;


class StockObserver
{
    //
}

在 class 中你可以创建 creatingcreatedupdatedupdateddeletingdeleted , savingsaved 方法。从他们的名字中可以看出他们的工作。 有关详细信息,请参阅 => 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 中观察到这一点 .. 所以在 AppServiceProviderboot 方法中写下以下内容。

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

就是这些..希望对您有所帮助。

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

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

所以你抓取你要复制的记录一点,然后把它设置为你创建记录上的剩余数量。