这让我难住。我想使用位运算符&
(代码应该是不言自明)laravel 5.4按位操作不按预期方式工作(雄辩)
我已经试过
@foreach($ages->where('productmask', '&', 2) as $option)
和
@foreach($ages->filter(function($i){return ((int)($i->productmask & 2)); }) as $option)
和
根据productmask场过滤$ages=Ages::all();
@foreach($ages->filter(function($i){return ((int)($i->productmask & 2) == 2); })->values() as $option)
and none wo rk当productmask = 3时,但在productmask恰好为2时工作。
这里有什么我的选择(没有双关语意)?为什么这不起作用?
我敢肯定,如果我这样做,将工作\DB::whereRaw
(因为我可以对数据库运行这个和它的作品,我得到第2个第3项):
SELECT * from ages WHERE productmask&2
但在这里它绕过流利并在视图内敲击数据库?不好的形式。
任何使用位掩码的人都会遇到过这种情况吗?
在此先感谢。
是的,我看了看,但我宁愿不必添加一个新的包和实施新的字段类型只是为了缓解似乎是一个简单的数学问题与雄辩。或者至少用他们的方式,我正在尝试使用它。 从供应商/ laravel /框架/ SRC /照亮/数据库/查询/ Builder.php 保护$运营= [ '=', '<', '>', '<=', '> =', '<>', '!=' , 'like','like binary','not like','between','ilike', '&','|','^','<<', '>>', 'rlike','regexp' ,'not regexp', '〜','〜*','!〜','!〜*','与'相似', '与''不相似', ]; – harrisoftware
请检查更新的答案 –
我试过whereRaw。该方法似乎只在类('年龄:whereRaw()')上可用。当我尝试在'$ ages = Ages :: all();'的结果上使用它时,我找到了一个找不到的方法。 '$ ages-> whereRaw()'失败。 – harrisoftware