目前使用 laravel 10 + hometead 開發,PHP 版本為 8.1,新的專案欄位有用到 json 的格式,跑測試用的資料庫是 sqlite in memory,為了要查某個欄位的某個值有沒有存在時使用了 Laravel 的 whereJsonContains
,他是實作 MySQL 的 json_contains
,問題來了 json_contains
根據 Laravel 的文件要 3.39 以上才支援,我原本以為 unittest 執行 datbase 相關指令時是拿取 local 的 sqlite3 command,所以想辦法 compiler 新版,後來才發現他是使用自己的 pdo_sqlite library 做掉這件事,版本也是 3.31。
有想過參考這個頁面 的教學讓 sqlite 支援這個功能,目前測試結果是失敗的,可以的話希望可以透過套件或其他方式使用新一點的 sqlite 來解,盡量不要用這種外掛支援的方法,想請教各位有經驗的朋友們解方,謝謝。