Laravel Eloquent -更新枚举类型



我有一个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"

最新更新