Rumah > rangka kerja php > Laravel > Bagaimana untuk mengecualikan medan yang tidak diingini dalam pertanyaan model Laravel

Bagaimana untuk mengecualikan medan yang tidak diingini dalam pertanyaan model Laravel

PHPz
Lepaskan: 2023-04-23 09:44:15
asal
1673 orang telah melayarinya

Laravel ialah rangka kerja pembangunan web PHP yang sangat popular yang menyediakan fungsi operasi pangkalan data yang berkuasa dan fleksibel. Apabila menggunakan Laravel untuk menanyakan data, kita selalunya perlu menapis dan mengembalikan medan tertentu tertentu, tetapi dalam beberapa kes, kita perlu mengecualikan medan tertentu daripada muncul dalam hasil pertanyaan. Artikel ini menerangkan cara untuk mengecualikan medan yang tidak diingini dalam pertanyaan model Laravel.

Pertama, kita boleh menggunakan kaedah select() yang disediakan oleh Laravel untuk menentukan medan pertanyaan, contohnya:

$users = User::select('name', 'email')->get();
Salin selepas log masuk

Ini akan mengembalikan name dan Koleksi bidang. Tetapi bagaimana jika kita perlu mengecualikan beberapa medan? Berikut ialah dua cara: email

Kaedah 1: Kecualikan medan

Kita boleh menggunakan kaedah

untuk menentukan semua medan yang akan dikembalikan, dan kemudian gunakan kaedah select() untuk mengecualikan medan yang tidak perlu dikecualikan. Contohnya: except()

$users = User::select('id', 'name', 'email', 'password')
             ->get()
             ->map(function ($user) {
                 return collect($user->toArray())
                     ->except(['password'])
                     ->all();
             });
Salin selepas log masuk
Di sini kita mula-mula menggunakan kaedah

untuk menentukan semua medan yang akan dikembalikan, dan kemudian gunakan kaedah select() untuk melaksanakan pertanyaan. Kemudian kami menggunakan kaedah get() untuk memproses hasil pertanyaan, menukar maklumat setiap pengguna kepada tatasusunan bersekutu dan menggunakan kaedah map() untuk mengecualikan medan kata laluannya. except()

Kaedah 2: Medan tersembunyi

Laravel juga menyediakan kaedah yang lebih mudah, iaitu menggunakan atribut

model untuk menyembunyikan medan yang tidak perlu dikeluarkan. Contohnya: $hidden

class User extends Model
{
    protected $hidden = ['password'];
}
Salin selepas log masuk
Dalam contoh ini, kami menetapkan sifat

model Pengguna kepada $hidden supaya apabila membuat pertanyaan, Laravel secara automatik akan mengecualikan medan kata laluan daripada hasil carian. ['password']

Perlu diambil perhatian bahawa jika kita perlu mengeluarkan medan tersembunyi, kita boleh menggunakan kaedah

untuk mengatasi atribut makeVisible() model semasa membuat pertanyaan. Contohnya: $hidden

$user = User::find(1);
$user->makeVisible(['password']);
Salin selepas log masuk
Ini akan menyebabkan objek

yang diperolehi mengandungi medan kata laluan. $user

Ringkasnya, kedua-dua kaedah di atas boleh membantu kami mengecualikan medan yang tidak diingini dalam pertanyaan model Laravel. Apabila menggunakannya, kita boleh memilih kaedah mana yang hendak digunakan mengikut situasi sebenar.

Atas ialah kandungan terperinci Bagaimana untuk mengecualikan medan yang tidak diingini dalam pertanyaan model Laravel. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan