如果是单个更新,我们可以使用
$variable->timestamps = false;
但是如果我想在不涉及时间戳的情况下进行大量更新。
当前我的代码是
$allapps = App::select('id','name','parent_id','view')->where('published',true)->whereNotIn('id', $excludeappsid)->update(['timestamps' => false],['view' => 0]);
但是我得到了错误
SQLSTATE [42S22]:找不到列:1054中的未知列'timestamps' “字段列表”
任何解决方案?
谢谢。
答案 0 :(得分:1)
据我所知这是不可能的。我认为这甚至是不可能的。
但是,您可以直接使用查询构建器而无需Eloquent,这不会更新时间戳。
\DB::table(with(App::class)->getTable())
->where('published', true)
->whereNotIn('id', $excludeappsid)
->update(['view' => 0]);
答案 1 :(得分:0)
自您的模型以来,您可以将时间戳记标记为false
public $timestamps = false;
或者您什么都不做。 :)
$allapps = App::select('id','name','parent_id','view')
->where('published',true)
->whereNotIn('id', $excludeappsid)
->update(['view' => 0])
答案 2 :(得分:0)
尝试一下:
library(dplyr)
df %>%
group_by(id.visit) %>%
mutate(x_M = mean(x, na.rm = TRUE), x_MIN = min(x, na.rm = TRUE),
x_MAX = max(x, na.rm = TRUE), x_SD = sd(x, na.rm = TRUE),
across(x_M:x_MAX, tidyr::replace_na, 1),
x_SD = replace(x_SD ,is.na(x_SD), 0))
# id.visit x x_M x_MIN x_MAX x_SD
# <chr> <int> <dbl> <dbl> <dbl> <dbl>
#1 1-01 5 4 1 6 2.65
#2 1-01 1 4 1 6 2.65
#3 1-01 6 4 1 6 2.65
#4 1-04 NA 1 1 1 0
#5 1-04 NA 1 1 1 0
#6 1-04 1 1 1 1 0