【发布时间】:2019-05-08 11:05:28
【问题描述】:
如果基于某些条件,表中已有记录可用,我正在使用updateOrCreate() 函数更新记录。但是,我不想更新包含唯一值的列之一。
我想对该列执行相同的操作,例如 created_at 正在工作
在创建记录值时添加到 created_at 列,但在更新时包含相同的值。
为防止出现此问题,我从模型中的 $fillable 中删除了该列名称。但是,在这种情况下,它不会向该列添加任何值。
protected $fillable = ['uid', 'channel', 'updated_at'];
$data = [
'uid' => Helper::generateUid(),
'channel' => $info['channel'],
'created_at' => time(),
'updated_at' => time(),
];
$cond = ['channel' => $info['channel']];
$isAdded = Templates::updateOrCreate($cond, $data);
预期结果 如果详细信息已经存在,我不想更新 uid 列。
实际结果 如果没有详细信息,它也会为 uid 列和其他列添加值,如果有详细信息,那么它也会更新 uid 列。
【问题讨论】:
标签: php laravel laravel-5 eloquent