簡體   English   中英

laravel PLUCK 和 SELECT 有什么區別

[英]What is the different between laravel PLUCK and SELECT

我發現 laravel 'pluck' 返回一個普通數組,而 'select' 返回一個 object。 任何人都可以向我解釋這兩者之間有什么不同嗎?

謝謝你。

Pluck 是一種 Laravel Collections 方法,用於從集合中提取某些值。 您可能經常想從集合中提取某些數據,即 Eloquent 集合。

而 Select 是多列或特定列的正常選擇。 他們是

通過使用Pluck您只要求返回必要的字段,但使用get您將提取所有列。 select 也一樣,這里的區別在於返回的結果。 使用 pluck 導致將最終結果作為具有一對給定 arguments 的數組返回,但 select 返回一個數組(或對象),其中每個子項都包含一行。

$name = DB::table('users')->where('name', 'John')->pluck('name');

Select

例如: DB::table('users')->select('id', 'name', 'email)

Select是一個發送到數據庫的方法,Laravel 將翻譯為SELECT id, name, email FROM users

這將 select 您詢問的列的數據,僅此而已。 它允許您通過僅詢問所需數據來更有效地處理您的請求。 以上面的示例為例,用戶是 Facebook 用戶。 它有大量數據,以及與其他表的關系。 如果您只想顯示名稱 email 和指向用戶配置文件的鏈接,請執行此請求!

有關更多信息並了解更多有關預期響應的信息,請訪問: https://laravel.com/docs/9.x/queries#select-statements

采摘

前任:

$users = DB::table('users')->where('roles', '=', 'admin')
$emails = $users->pluck('email')

Pluck方法檢索您已經從數據庫中獲得的集合中的值,該集合現在是 Laravel集合 這允許您創建一個提取數據的數組,但不會提高您的請求的性能,如上面的示例中, $users將保存所有管理員用戶的所有數據。

既然不能提升性能,那有什么好處呢? 例如,根據位置將不同變量中的一些數據分開,采摘將很有用。 您可能需要某些內容的用戶數據,但還希望一起顯示所有電子郵件的快速列表。

有關 pluck 方法的更多信息並了解如何從第二列創建鍵控數組,請訪問此處的文檔: https://laravel.com/docs/9.x/collections#method-pluck

實際上 select 是在 DB 查詢中使用的,它會通過限制拉取的列來影響性能。 但是,Pluck 是 Laravel Collection 的方法,所以你可以在從 DB 中拉取數據后使用 pluck。

Pluck function 通常用於從集合中提取單列或以 2 列作為鍵、值對,它始終是一維數組。

Select 將返回您為二維數組中的實體指定的所有列,例如數組中選定值的數組。

注意: Pluck function 是一個集合 function 發生在獲取數據之后。 Select 是一個查詢構建器 function,它構建查詢以在數據庫服務器中執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM