Laravel 5.5-检查是否仅更新一列

时间:2018-07-25 06:21:00

标签: laravel

我想知道在使用Laravel 5.5和模型之前,如果只更新一栏statut。

感兴趣的是,如果没有更改,则仅更新状态,或者,如果要更新某些列,则创建新行。因为每个修改都需要在发布前得到批准。

实际上,我有很多,如:

if($request->statut != $product->statut && $request->title == $product ...)

有最快的方法吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用isDirty('field')方法来检查字段是否已更改(尚未保存)。 getDirty()将为您返回所有此类字段及其值的数组。

如果我正确理解了您的情况,那么您可以这样做:

if ($product->isDirty('statut')) {
    if (count($product->getDirty()) == 1) {
        ...
    }
}

首先,我们检查您的statut的字段$product是否已更改。然后,我们只需检查已更改字段的数量是否为1(这意味着除了statut之外没有其他已更改字段)。