Laravel ialah rangka kerja aplikasi web yang sangat baik dengan struktur fleksibel dan set ciri yang kaya menjadikannya pilihan pertama banyak pembangun. Dalam Laravel, menentukan medan bermakna memilih medan tertentu sahaja, bukan semua medan, semasa mengendalikan pangkalan data. Ini berguna dalam banyak situasi, contohnya: jika anda hanya mengambil berat tentang beberapa data dalam jadual dan tidak mahu menanyakan semua data, atau jika hasil pertanyaan adalah besar dan prestasi perlu dipertingkatkan.
Dalam artikel ini, kami akan memperkenalkan cara untuk menentukan medan dalam Laravel, membolehkan anda mengendalikan pangkalan data dengan lebih fleksibel dan meningkatkan prestasi aplikasi anda.
select()
untuk menentukan medan Pembina pertanyaan Laravel menyediakan kaedah select()
yang boleh digunakan untuk menentukan medan untuk dipilih. Kaedah ini menerima satu atau lebih parameter, yang boleh menjadi rentetan yang mengandungi senarai nama medan yang dipisahkan koma untuk dipilih, atau berbilang rentetan, setiap rentetan mewakili medan yang akan dipilih. Berikut ialah kod sampel untuk menentukan medan menggunakan kaedah select():
$users = DB::table('users')->select('id', 'name', 'email')->get();
Dalam contoh di atas, kami lulus parameter select()
dalam kaedah 'id', 'name', 'email'
, yang bermaksud hanya ketiga-tiga ini medan dalam jadual dipilih. Kaedah get()
digunakan untuk melaksanakan pertanyaan dan mengembalikan hasil pertanyaan.
$fillable
modelJika anda menggunakan model Laravel (Model), anda boleh menggunakan atribut $fillable
model untuk menentukan perkara yang dibenarkan Medan untuk tugasan batch. Dengan cara ini, apabila anda memanggil kaedah create()
atau update()
model, hanya medan yang dinyatakan dalam atribut $fillable
akan diberikan nilai. Berikut ialah kod sampel untuk menentukan medan menggunakan atribut $fillable
:
class User extends Model { protected $fillable = ['name', 'email', 'password']; }
Dalam contoh di atas, kami telah menentukan tiga medan menggunakan atribut $fillable
: name
, email
dan password
. Jika anda memanggil kaedah create()
model dan lulus nilai tiga medan ini, nilai ini akan disimpan secara automatik ke pangkalan data.
$guarded
model Berbeza dengan atribut $fillable
, model Laravel juga menyediakan atribut yang dipanggil $guarded
yang boleh Digunakan untuk menentukan medan yang tidak dibenarkan diubah melalui tugasan pukal. Jika anda menentukan atribut $guarded
, medan yang dinyatakan dalam atribut create()
tidak disertakan semasa memanggil kaedah update()
atau $guarded
model untuk tugasan pukal. Berikut ialah kod sampel untuk menentukan medan menggunakan atribut $guarded
:
class User extends Model { protected $guarded = ['id', 'created_at', 'updated_at']; }
Dalam contoh ini, kami telah menentukan medan $guarded
, id
dan created_at
menggunakan atribut updated_at
. Medan ini akan dikecualikan semasa melakukan tugasan pukal.
pluck()
untuk menentukan satu medan Jika anda hanya perlu menanyakan nilai satu medan dalam jadual, anda boleh menggunakan pertanyaan kaedah pluck()
pembina. Kaedah ini menerima parameter yang mewakili nama medan yang anda ingin tanya. Berikut ialah kod sampel untuk menentukan medan tunggal menggunakan kaedah pluck()
:
$name = DB::table('users')->where('id', 1)->pluck('name');
Dalam contoh di atas, kami menggunakan kaedah where()
untuk menapis rekod yang id
adalah sama kepada 1, dan gunakan Kaedah pluck()
memilih nilai medan name
. Pertanyaan ini mengembalikan rentetan yang mengandungi nilai medan yang ditentukan.
Ringkasan
Di atas ialah empat kaedah untuk menentukan medan dalam Laravel. Menggunakan kaedah di atas, anda boleh mengendalikan pangkalan data dengan lebih fleksibel dan meningkatkan prestasi aplikasi. Tidak kira kaedah yang anda pilih, apabila menanyakan sejumlah besar data, menanyakan hanya medan yang anda perlukan adalah amalan yang baik dan boleh mengurangkan volum pemindahan data dan masa pelaksanaan pertanyaan dengan ketara.
Atas ialah kandungan terperinci Bagaimana untuk menentukan medan dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!