tp5 中使用 mongoDB 空間位置搜尋

2021-10-01 14:47:57 字數 721 閱讀 2808

在很多場景我們都會使用位置範圍服務:

如:查詢附近的單車、旅店、飯店等等。tp5框架的使用還是比挺多的,關於tp5中的查詢條件已經預設擁有了near查詢處理了,但結果並不能滿足我們的一些需求。參考到一篇文章,所以對 tp5中的範圍查詢進行記錄,希望可以幫助到有同等需求的小夥伴們。

需要了解mongodb的2dsphere、2d索引服務,及空間查詢的基本使用語法。

composer.json 檔案新增

"require": ,
或者 到 vendor資料夾下開啟終端用命令新增擴充套件:composer require topthink/think-mongo 

public function mongo()
上面的 where 條件沒有預設的,所以要修改一下

找到要修改的檔案:專案\vendor\topthink\think-mongo\src\builder.php     並找到 parsewhereitem 方法

......

}elseif ('near' == $exp)

......

找到上面 near == $exp  這項,經緯度查詢的**注釋掉,並新增空間點查詢這項**

ok ,最後測試成功

參考文章:如何在thinkphp5中使用mongodb中空間搜尋進行位置範圍查詢

TP5中使用模板繼承

首先將乙個滿的html頁面複製到view public base.html中,接著將頭部 header 導航欄 n 左側選單欄 left 底部 footer js js 都分離到單獨的html裡 在base.html中使用這樣的方式進行引入頭部,其他部分都照這個例子進行引入 找到base.html中...

tp5 命名空間

命名空間 thinkphp5採用命名空間方式定義和自動載入類庫檔案,有效的解決了多模組和composer類庫之間的命名空間衝突問題,並且實現了更加高效的類庫自動載入機制。特別注意的是,如果你需要呼叫php內建的類庫,或者第三方沒有使用命名空間的類庫,記得在例項化類庫的時候加上 例如 錯誤的用法 cl...

tp5中使用predis小例

第一步 在專案根目錄通過composer安裝predis composer require predis predis 第二步 伺服器那邊配置 前提伺服器已經安裝redis 執行vim etc redis.conf 修改四個引數 第乙個將bind 127.0.0.1改為bind 0.0.0.0 允許...