Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Memilih Lajur Khusus dalam Fungsi Laravel's Fasih `dengan()`?

Bagaimana untuk Memilih Lajur Khusus dalam Fungsi Laravel's Fasih `dengan()`?

Linda Hamilton
Lepaskan: 2024-12-16 00:41:16
asal
924 orang telah melayarinya

How to Select Specific Columns in Laravel's Eloquent `with()` Function?

Menentukan Lajur Khusus dalam Fungsi "With()" Eloquent

Apabila memanfaatkan fungsi "with()" dalam ORM Eloquent Laravel untuk mengambil data berkaitan daripada berbilang jadual, anda mungkin menghadapi situasi di mana anda hanya memerlukan lajur tertentu daripada jadual kedua. Artikel ini menyelidiki cara untuk mencapai perkara ini tanpa menggunakan Pembina Pertanyaan.

Pertimbangkan senario di mana anda mempunyai dua jadual, "Pengguna" dan "Siaran," dengan perhubungan satu-ke-banyak antara mereka. Dalam model Pengguna anda, anda mentakrifkan hubungan "hasMany" dengan model Post:

public function post()
{
    return $this->hasmany('post');
}
Salin selepas log masuk

Begitu juga, dalam model Post, anda mewujudkan hubungan "belongsTo" dengan model Pengguna:

public function user()
{
    return $this->belongsTo('user');
}
Salin selepas log masuk

Walau bagaimanapun, apabila anda menggunakan fungsi "with()" untuk menyertai kedua-dua jadual ini, anda mungkin perasan bahawa ia memilih semua lajur daripada jadual kedua secara lalai. Katakan anda hanya mahu mendapatkan semula lajur tertentu, seperti "id" dan "nama pengguna," daripada jadual "Pengguna". Coretan kod berikut tidak akan mencukupi:

Post::query()
    ->with('user')
    ->get();
Salin selepas log masuk

Untuk mencapai matlamat anda, anda boleh lulus fungsi penutupan sebagai indeks kedua tatasusunan dihantar ke fungsi "with()":

Post::query()
    ->with(['user' => function ($query) {
        $query->select('id', 'username');
    }])
    ->get()
Salin selepas log masuk

Penutupan ini membolehkan anda menentukan lajur yang hendak diambil daripada jadual kedua. Dalam keadaan ini, ia hanya akan memilih lajur "id" dan "nama pengguna" daripada jadual "Pengguna".

Nota: Seperti yang dinyatakan dalam jawapan, kunci utama ("id " dalam kes ini) mestilah parameter pertama dalam kaedah $query->select() untuk memastikan perolehan hasil yang betul.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Lajur Khusus dalam Fungsi Laravel's Fasih `dengan()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan