Laravel Eloquent - 更新枚举类型

时间:2014-07-11 22:39:33

标签: laravel enums laravel-4

我的表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(),我需要满足验证器。我只想更改一列,所以我想使用第一种方法。

有人可以建议吗?

1 个答案:

答案 0 :(得分:0)

我遇到了与Laravel 5.3相同的问题。在数据库中使用枚举时,可以使用整数设置枚举。 1 =普通,2 =模板,3 =修订。

$schedule = Schedule::find($id);
$schedule->type = 1;
$scehdule->save();

return $schedule;

这会将日程表类型设置为" common"