php – Laravel在迁移中提供数据类型位/字节
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – Laravel在迁移中提供数据类型位/字节,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1238字,纯文字阅读大概需要2分钟。
内容图文
![php – Laravel在迁移中提供数据类型位/字节](/upload/InfoBanner/zyjiaocheng/780/920b798fbe1a4d22bc7119d924266a99.jpg)
是否有类似于laravel中的bit(byte)的数据库,在文档中找不到任何数据库. (https://laravel.com/docs/5.1/migrations).
我尝试做类似的事情:
00000001 -> stands for something lets say playstation
00000010 -> stands for xbox
00000011 -> stands for both above
解决方法:
您可以只使用整数和按位运算符,而不是尝试使用BIT数据类型,假设一个字段不需要超过32个选项(bigint = 8个字节) = 32位).
作为一个非常简单的示例,假设您创建了以下枚举类:
class Bitmask {
const ATARI = 1 << 0; // 00000001 (1)
const NES = 1 << 1; // 00000010 (2)
const SNES = 1 << 2; // 00000100 (4)
const SEGA = 1 << 3; // 00001000 (8)
const PLAYSTATION = 1 << 4; // 00010000 (16)
const XBOX = 1 << 5; // 00100000 (32)
}
要设置该字段,您需要做的就是将位掩码一起添加(在此配置中,ORing(|)它们是相同的).如果用户有NES和PLAYSTATION:
$user->systems = Bitmask::NES + Bitmask::PLAYSTATION;
要查询,您将使用按位运算符.所以,如果你想要拥有SEGAs的用户:
User::where('systems', '&', Bitmask::SEGA)->get();
如果您想要拥有PLAYSTATION或XBOXes的用户:
User::where('systems', '&', Bitmask::PLAYSTATION | Bitmask::XBOX)->get();
&运算符将在整数字段和传入的整数之间执行按位AND运算.如果任何位匹配,则&运算符将返回值> 0,where子句将是真实的.如果没有一个比特匹配,那么& operator将返回0,where子句将为false.
内容总结
以上是互联网集市为您收集整理的php – Laravel在迁移中提供数据类型位/字节全部内容,希望文章能够帮你解决php – Laravel在迁移中提供数据类型位/字节所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。