這讓我難住。我想使用位運算符&
(代碼應該是不言自明)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