katakanlah saya memiliki 7 kolom dalam tabel, dan saya ingin memilih hanya dua kolom, kira-kira seperti ini
SELECT `name`,`surname` FROM `table` WHERE `id` = '1';
Dalam model fasih laravel mungkin terlihat seperti ini
Table::where('id', 1)->get();
tapi saya kira ungkapan ini akan memilih SEMUA kolom di mana id sama dengan 1, dan saya hanya ingin dua kolom (nama, nama keluarga). bagaimana cara memilih hanya dua kolom?
Jawaban:
Anda dapat melakukannya seperti ini:
sumber
SELECT name, surname FROM Table where id = 1
query SQLsumber
Dengan menggunakan semua () metode kita dapat memilih kolom tertentu dari tabel seperti yang ditunjukkan di bawah ini.
Catatan : Laravel 5.4
sumber
Anda juga dapat menggunakan
find()
seperti ini:The
$id
variabel dapat berupa array dalam kasus Anda perlu untuk mengambil beberapa contoh dari model.sumber
Juga
Model::all(['id'])->toArray()
hanya akan mengambil id sebagai array.sumber
Pertama-tama Anda perlu membuat Model, yang mewakili Tabel itu dan kemudian menggunakan cara Eloquent di bawah ini untuk mengambil data hanya 2 bidang.
sumber
Anda dapat menggunakan get () dan juga semua ()
sumber
Anda juga dapat menggunakan memetik.
sumber
pluck()
kurang efisien daripada metode lain yang dibahas karena tidak mengubahSELECT ...
kueri, melainkan beroperasi pada set hasil yang sudah dikembalikan.Dapatkan nilai satu kolom:
Bahkan Anda dapat menggunakan metode ini dengan klausa mana:
dalam pembuat kueri:
dengan mana cluase:
atau
hasil metode terakhir adalah array
sumber
Kamu bisa memakai
Table::select ('name', 'surname')->where ('id', 1)->get ()
.Ingatlah bahwa ketika memilih hanya bidang tertentu, Anda harus membuat kueri lain jika Anda akhirnya mengakses bidang lain itu di permintaan (yang mungkin jelas, hanya ingin menyertakan peringatan itu). Memasukkan bidang id biasanya merupakan ide bagus sehingga laravel tahu cara menulis kembali setiap pembaruan yang Anda lakukan pada contoh model.
sumber
Dari laravel 5.3 hanya menggunakan
get()
metode, Anda bisa mendapatkan kolom tertentu dari tabel Anda:Atau dari laravel 5.4 Anda juga dapat menggunakan
all()
metode untuk mendapatkan bidang pilihan Anda:dengan kedua metode di atas
get()
atauall()
Anda juga dapat menggunakanwhere()
tetapi sintaksnya berbeda untuk keduanya:Model :: all ()
Model :: get ()
sumber
Untuk mendapatkan hasil kolom tertentu dari tabel, kita harus menentukan nama kolom.
Gunakan kode berikut: -
sebagai contoh -
sumber
Sementara pendekatan yang paling umum adalah untuk digunakan
Model::select
, itu dapat menyebabkan render semua atribut yang didefinisikan dengan metode accessor dalam kelas model. Jadi, jika Anda mendefinisikan atribut dalam model Anda:Dan kemudian gunakan:
TableName::select('username')->where('id', 1)->get();
Ini akan menampilkan koleksi dengan keduanya
first_name
danusername
, bukan hanya nama pengguna.Lebih baik digunakan
pluck()
, solo atau secara opsional dikombinasikan denganselect
- jika Anda menginginkan kolom tertentu.TableName::select('username')->where('id', 1)->pluck('username');
atau
TableName::where('id', 1)->pluck('username');
// itu akan mengembalikan koleksi yang hanya terdiri dariusername
nilaiJuga, secara opsional, gunakan
->toArray()
untuk mengubah objek koleksi menjadi array.sumber
->get()
seperti->all()
(dan->first()
sebagainya.) dapat mengambil bidang yang ingin Anda bawa kembali sebagai parameter;->get/all(['column1','column2'])
Akan membawa kembali koleksi tetapi hanya dengan
column1
dancolumn2
sumber
Anda juga dapat menggunakan
findOrFail()
metode di sini. Itu baik untuk digunakansumber
Jika Anda ingin mendapatkan baris tunggal dan dari kolom tunggal baris itu, satu kode baris untuk mendapatkan nilai kolom tertentu adalah dengan menggunakan
find()
metode di samping menentukan kolom yang ingin Anda ambil.Berikut ini contoh kode:
sumber
Anda dapat menggunakan kueri di bawah ini:
sumber
gunakan App \ Table; ... Table :: where ('id', 1) -> get ('name', 'marga');
jika tidak ada dimana
Tabel :: semua ('nama', 'nama keluarga');
sumber