【发布时间】:2017-02-02 09:51:16
【问题描述】:
我有一个包含这些列的表格:
param_id
val_value
val_flag
date_value
tmp_value
tmp_flag
我有一个元素数组,我总是有 param_id 和 date_value,但有时我有 val 列,而其他时候我有 tmp 列。
我使用$data->save(),因为有时我需要在 db 中创建一个新寄存器,而其他时候我需要使用 param_id 和 date_value 更新寄存器。
问题是:有没有办法进行插入/更新,但何时更新,只更新 tmp 列或 val 列?我认为 find First 是我唯一的选择,但也许还有其他方法。
谢谢。
[编辑]
我正在尝试使用白名单,但它不起作用。让我解释一下该方法是如何工作的:我收到一个对 Web 服务的请求,处理 xml 并使用收集的信息生成一个元素数组,在处理完这些元素之后,我有一个适合保存的类的元素数组,但是这些可能是新的或现有的,并且可能包含 tmp 或 val 值,我已经尝试过,但我仍然将值更改为 null。
if ($medida->tipo == 'temporal'){
$whiteList = array('val_value','val_flag');
}else if ($medida->tipo == 'validado'){
$whiteList = array('tmp_value','tmp_flag');
}
$dato->save(null, $whitelist);
我没有post的数据,我用null代替,我也试过用数组手动分配数据得到同样的结果。
【问题讨论】: