Rumah > Artikel > rangka kerja php > Cara menggunakan skop dalam laravel
Dalam laravel, skop digunakan untuk memproses data dalam model, anda boleh menentukan kaedah pada permulaan skop Kaedah ini boleh dipanggil terus melalui model dan dipanggil skop pertanyaan sintaks ialah "skop fungsi awam" Gunakan huruf besar pada huruf pertama perkataan ($query){...}".
Persekitaran pengendalian artikel ini: sistem Windows 10, versi Laravel 8, komputer Dell G3.
Skop dalam laravel
Data (milik atau tidak) diproses dalam templat laravel (tambah, padam, ubah suai, semak), diperkenalkan Gunakan skop untuk memproses
, iaitu menambah skop awalan dalam kaedah definisi templat.
Ringkasnya, model dalam Laravel boleh menentukan kaedah pada permulaan skop, dan kaedah ini boleh dipanggil terus melalui model. Pendekatan jenis ini juga dipanggil skop pertanyaan.
Pertanyaan bersyarat sering digunakan dalam pertanyaan data Beberapa syarat pertanyaan ini adalah sama.
Skop biasa
Definisi
Nama kaedah ialah skop dengan huruf pertama huruf besar (ini boleh ditakrifkan sesuka hati)
public function scopeStatus($query) { return $query->where('status',1); }
Gunakan
untuk memanggil fungsi dengan huruf kecil huruf pertama selepas mengalih keluar skop.
scopeStatus () status panggilan ().
User::status()->get();
Skop global
Kita perlu mentakrifkan semula kaedah but Selepas menyepadukan but kelas induk, tambahkan skop global, supaya ia akan digunakan secara global secara lalai.
protected static function boot() { parent::boot(); // TODO: Change the autogenerated stub static::addGlobalScope('avaiable',function (Builder $builder){ $builder->whereIn('status', [0, 1]); }); }
Kadangkala apabila kami mempunyai pertanyaan yang tidak memerlukan skop global ini, kami hanya perlu mengalih keluarnya.
Gunakan kaedah withOutGlobalScope()
Post::withOutGlobalScope('avaiable')->get();
[Cadangan berkaitan: tutorial video laravel]
Atas ialah kandungan terperinci Cara menggunakan skop dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!