2015-12-21 23 views
30

L5.1 -> L5.2 projemi yükseltmeye çalışıyorum. pluck olarak değiştirilmiştir Koleksiyonu, sorgu oluşturucu ve Etkili sorgu oluşturucu nesnelereLaravel 5.2 - pluck() yöntemi dizi döndürür

lists yöntemi: upgrade guide yılında benim için açık değildir bir şey var. yöntem imzası aynı kalır. Tamam

, pluck() için lists() den refactoting adlandırmak bir sorun değildir. Ama ne L5.0 ve L5.1 olan yararlı pluck() yöntemi ile? 5.0 documentation itibaren

:

A Row

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

L5.2 eski pluck() yöntemi için alternatif nedir tek bir sütun alınıyor?

Update:

Örnek:

var_dump(DB::table('users')->where('id', 1)->pluck('id')); 

L5.1:

// int(1) 

L5.2:

// array(1) { [0]=> int(1) } 
+8

Evet, bu oldukça kafa karıştırıcı. 5.0'da 'pluck()' bir satırdan 1 alan seçmeyi kastediyordu. Daha sonra 5.1'de 'pluck()' i kaldırdılar ve 'value()' ile değiştirdiler. Daha sonra 5.2'de "pluck()" ile tüm sütunu döndüren listeler() 'i değiştirirler. Bu yüzden eğer 4,2'den beri olsaydınız, şaşırabilirsiniz:/ –

cevap

46

mevcut Alte pluck() için negatif, value()'dur.

+2

Teşekkür ederim! Bu değişiklik, kırılma değişikliğinden dolayı güncelleme kılavuzunda olmalıdır. –

+2

5,1 için yükseltme kılavuzunda olduğunu görüyorum: http://laravel.com/docs/5.2/upgrade#upgrade-5.1.0 Benim kötü prev sürümünde bu değişikliği yakalamadım. –

+0

Bu değişiklik hakkında aslında bir bildirim var: "Eloquent koleksiyonu örneği şu yöntemler için artık temel bir Koleksiyon ('Illuminate \ Support \ Collection') döndürüyor:" pluck "," –

-2

Özgün örnekte, neden veritabanı sorgunuzda select() yöntemini kullanmıyorsunuz?

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

Bu, bir PHP çerçevesi kullanmaktan daha hızlı olacaktır, çünkü sizin için satır seçimini yapmak için SQL sorgusunu kullanacaktır. Sıradan koleksiyonları için, bunu geçerli olduğunu düşünmüyorsanız, ancak bir veritabanı kullanıyorsanız beri ...

Larvel 5.3: Specifying a Select Clause

+0

-> get() ; Hala PHP'yi –

+0

dizisini biçimlendirmek için kullanmanız gerekir. Php işlemleri Mysql sorgularından çok daha hızlıdır. –

+0

@AnkitBalyan alaycı mısınız? mysql, php'den daha hızlıdır. Her birinde bir milyon satır işlenmeyi deneyin ... –