Note: Renaming columns in a table with a enum column is not currently supported.
什么是使用 ENUM 的最佳实践替代方案。例如,我有一个包含 type
ENUM 列的 users
表。我将来可能需要修改该表,但由于 ENUM 列的存在而无法修改。
最佳答案
我通常做的是:制作一个types
表。
-----------------------
| id | type |
-----------------------
| 1 | admin |
-----------------------
| 2 | moderator |
-----------------------
在您的users
表中创建一个字段type_id
。并在 Laravel 中创建你的关系:
class User extends Model
{
public function type()
{
return $this->hasOne('Type');
}
}
现在您可以:
$users = Users::where('type', '=', 1)->get();
或者:
$users = User::with(['type' => function ($query) {
$query->where('type', '=', 'admin');
}])->get();
而且您还可以反转关系,这样您就可以通过type
查询并加载所有users
,例如:
$all = Type::with('users')->where('type', '=', 'admin')->get();
关于mysql - laravel - 使用枚举的替代方案,因为不支持重命名列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31813138/