table
table方法主要用于指定操作的數據表。
用法
一般情況下,操作模型的時候系統能夠自動識別當前對應的數據表,所以,使用table方法的情況通常是為了:
- 切換操作的數據表;
- 對多表進行操作;
例如:
Db::table('think_user')->where('status>1')->select();
也可以在table方法中指定數據庫,例如:
Db::table('db_name.think_user')->where('status>1')->select();
table方法指定的數據表需要完整的表名,但可以采用下面的方式簡化數據表前綴的傳入,例如:
Db::table('__USER__')->where('status>1')->select();
會自動獲取當前模型對應的數據表前綴來生成 think_user
數據表名稱。
需要注意的是table方法不會改變數據庫的連接,所以你要確保當前連接的用戶有權限操作相應的數據庫和數據表。 切換數據表后,系統會自動重新獲取切換后的數據表的字段緩存信息。
如果需要對多表進行操作,可以這樣使用:
Db::field('user.name,role.title')
->table('think_user user,think_role role')
->limit(10)->select();
為了盡量避免和mysql的關鍵字沖突,可以建議使用數組方式定義,例如:
Db::field('user.name,role.title')
->table(['think_user'=>'user','think_role'=>'role'])
->limit(10)->select();
使用數組方式定義的優勢是可以避免因為表名和關鍵字沖突而出錯的情況。
文檔最后更新時間:2018-04-26 09:35:32
未解決你的問題?請到「問答社區」反饋你遇到的問題