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();
Ini akan mengembalikan name
dan Koleksi bidang. Tetapi bagaimana jika kita perlu mengecualikan beberapa medan? Berikut ialah dua cara: email
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(); });
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()
model untuk menyembunyikan medan yang tidak perlu dikeluarkan. Contohnya: $hidden
class User extends Model { protected $hidden = ['password']; }
model Pengguna kepada $hidden
supaya apabila membuat pertanyaan, Laravel secara automatik akan mengecualikan medan kata laluan daripada hasil carian. ['password']
untuk mengatasi atribut makeVisible()
model semasa membuat pertanyaan. Contohnya: $hidden
$user = User::find(1); $user->makeVisible(['password']);
yang diperolehi mengandungi medan kata laluan. $user
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!