我有一个enum
列在我的表Schedule
。我想更新这列,但是我做不到。我的type
包括3个选项:common, template, revision
。
这行不通。这个过程很顺利,但是type
没有改变:
$schedule = Schedule::find($id);
$schedule->type = 'common';
$scehdule->save();
return $schedule;
但这确实有效:
$schedule = Schedule::find($id);
$schedule->fill(['type' => 'common']);
$scehdule->save();
return $schedule;
$schedule = Schedule::find($id);
unset($schedule->type);
$schedule->type = 'common';
$scehdule->save();
return $schedule;
问题是,如果我要使用fill()
,我有验证器需要满足。我只想改变一列,所以我想使用第一种方法。
有人能给点建议吗?
我在使用Laravel 5.3时遇到了同样的问题。当您在数据库中使用枚举时,您可以通过使用整数来设置枚举。1 = common, 2 = template, 3 = revision.
$schedule = Schedule::find($id);
$schedule->type = 1;
$scehdule->save();
return $schedule;
这将设置调度类型为"common"