JSON欄位型別在ORM中的使用

whm156377發表於2020-03-16

  JSON欄位型別在ORM中的使用


  ThinkPHP5.1版本正式釋出已經有一段時間了,我會陸續給大家介紹其中的新特性。今天要給大家介紹的是一個可能很多使用者還不瞭解的一個特性:JSON欄位資料支援。


  不過首先注意一點,本篇內容中描述的JSON欄位資料的支援是從V5.1.4+版本引入的。由於包含安全更新的原因,建議確保使用5.1.9+版本。


  本篇中對JSON欄位的定義包括JSON型別或者儲存的資料為JSON格式的字元型別,所以理論上除了使用JSON欄位條件查詢外,對資料庫型別和版本沒有要求。


  Db類操作JSON


  如果你沒有使用模型類,Db類提供了一個json方法可以指定你的資料表JSON格式欄位。例如你的user表有一個info欄位是JSON型別的,你可以使用下面的方式運算元據。


  資料寫入


  $user['name']='thinkphp';


  $user['info']=[


  'email'=>'thinkphp qq.com',


  'nickname'=>'流年',


  ];


  Db::name('user')


  ->json(['info'])


  ->insert($user);


  json方法的引數是一個陣列,示例中指定了info欄位,其實可以指定多個JSON型別欄位。


  資料查詢


  查詢整個JSON資料使用。


  $user=Db::name('user')


  ->json(['info'])


  ->find(1);


  dump($user);


  返回的查詢結果資料中,會自動包含一個陣列型別的info資料,也就是說JSON格式資料已經自動json_decode處理。


  該方式查詢對info欄位並非嚴格要求使用JSON型別


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69926583/viewspace-2680585/,如需轉載,請註明出處,否則將追究法律責任。

相關文章