我希望eloquent能够使用以下命令自动提供created_at和updated_at字段
DB::table('partida')->updateOrInsert(
[
'rodada' => $values->rodada,
'mandante_fk' => $value->clube_casa_id,
'visitante_fk' => $value->clube_visitante_id
],
[
'partida_id' => $key,
'rodada' => $values->rodada,
'mandante_fk' => $value->clube_casa_id,
'visitante_fk' => $value->clube_visitante_id,
'partida_data' => (string)$value->partida_data,
'placar_mandante' => $value->placar_oficial_mandante,
'placar_visitante' => $value->placar_oficial_visitante,
'local' => (string)$value->local
]
);
答案 0 :(得分:0)
你想要的是 Eloquent 的一部分。虽然您使用的是查询生成器
如果您想继续使用查询生成器,我建议您在数组中附加以下内容。
DB::table('partida')->updateOrInsert(
[
'rodada' => $values->rodada,
'mandante_fk' => $value->clube_casa_id,
'visitante_fk' => $value->clube_visitante_id,
'created_at' => \Carbon\Carbon::now(),
'updated_at' => \Carbon\Carbon::now()
],
[
'partida_id' => $key,
'rodada' => $values->rodada,
'mandante_fk' => $value->clube_casa_id,
'visitante_fk' => $value->clube_visitante_id,
'partida_data' => (string)$value->partida_data,
'placar_mandante' => $value->placar_oficial_mandante,
'placar_visitante' => $value->placar_oficial_visitante,
'local' => (string)$value->local,
'created_at' => \Carbon\Carbon::now(),
'updated_at' => \Carbon\Carbon::now()
]
);
答案 1 :(得分:0)
如果要正确使用Eloquent方法,请使用Eloquent而不是查询构建器。
您实际上可以使用updateOrCreate()
方法执行相同操作,如果模型定义了时间戳,则会设置时间戳。
你会得到类似的东西(假设存在Partida模型):
Partida::updateOrCreate([
'rodada' => $values->rodada,
'mandante_fk' => $value->clube_casa_id,
'visitante_fk' => $value->clube_visitante_id
],
[
'partida_id' => $key,
'rodada' => $values->rodada,
'mandante_fk' => $value->clube_casa_id,
'visitante_fk' => $value->clube_visitante_id,
'partida_data' => (string)$value->partida_data,
'placar_mandante' => $value->placar_oficial_mandante,
'placar_visitante' => $value->placar_oficial_visitante,
'local' => (string)$value->local
]);
答案 2 :(得分:0)
您需要使用 upsert()
方法。