laravel字段排除功能


laravel字段排除功能

一、總結

一句話總結:

字段排除功能可以不需要,需要查啥自己手動寫在sql里面

首先你要知道你表里所有的字段,這樣才能進行排除。知道表里的所有字段的方式我能想到的有兩種,一種是寫死在你的 Model 里,還有一種是去數據庫查詢一遍。兩種都有弊端.

第一種寫死,如果你數據庫有添加字段,是需要人工維護到程序里的,這樣跟你自己手動在 Sql 里進行添加沒有什么兩樣了,而且你數據庫里結構發生變化證明有功能變更,這個時候你之前的 Sql 可能也會增加一些排除的字段或者有其他的變更,這樣就要維護兩份數據,不如在變更需求的時候直接變更之前手寫的 Sql.

第二種程序進行查詢,顯然這會讓你每次的查詢 Sql 增加一條,當然你也可以加一個緩存來減少 Sql 的查詢,不過要在數據庫結構發生變更的時候記得清理緩存,否則會出現奇奇怪怪的 Bug.

 

 

 

二、laravel字段排除功能

轉自或參考:ORM 查詢如何排除某個字段?如只排除 content 文本,其它字段都查詢 | Laravel China 社區
https://learnku.com/laravel/t/3975/orm-query-how-to-exclude-a-field-if-only-the-content-text-is-excluded-the-other-fields-are-query

 

1、問題

ORM 查詢如何排除某些字段?如只排除 content 文本,其它字段都需要。

$data = Content::where('pid',1)->get(['id','title','time', ...]);`
這么寫感覺很笨,有沒有直接排除 content 字段,其它字段都要查詢的方法呢?

 

 

2、說明

先說結論:我認為,需要查啥自己手動寫在 Sql 里.

Mysql 並沒有提供排除的查詢方式,所以你要這樣查詢,無論是你人工做這個事兒還是程序自動幫你算出來要查詢的字段,總之是要進行一步轉換的.

那么我們就來說說程序怎么進行轉換.

首先你要知道你表里所有的字段,這樣才能進行排除。知道表里的所有字段的方式我能想到的有兩種,一種是寫死在你的 Model 里,還有一種是去數據庫查詢一遍。兩種都有弊端.

第一種寫死,如果你數據庫有添加字段,是需要人工維護到程序里的,這樣跟你自己手動在 Sql 里進行添加沒有什么兩樣了,而且你數據庫里結構發生變化證明有功能變更,這個時候你之前的 Sql 可能也會增加一些排除的字段或者有其他的變更,這樣就要維護兩份數據,不如在變更需求的時候直接變更之前手寫的 Sql.

第二種程序進行查詢,顯然這會讓你每次的查詢 Sql 增加一條,當然你也可以加一個緩存來減少 Sql 的查詢,不過要在數據庫結構發生變更的時候記得清理緩存,否則會出現奇奇怪怪的 Bug.

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM