iT邦幫忙

0

laravel 做 unittest 時如何使用較新的 sqlite 版本

  • 分享至 

  • xImage

目前使用 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 來解,盡量不要用這種外掛支援的方法,想請教各位有經驗的朋友們解方,謝謝。

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答