Jadual Kandungan
Buat pemerhati
Soalan Lazim Mengenai Pemerhati yang fasih di Laravel
Apakah tujuan menggunakan pemerhati fasih di Laravel?
Bagaimana untuk membuat pemerhati yang fasih di Laravel?
Bagaimana untuk mendaftar untuk pemerhati yang fasih?
, dan
Bagaimana menggunakan pemerhati yang fasih untuk pengesahan?
Bolehkah saya menggunakan pemerhati yang fasih dengan padam lembut?
Rumah pembangunan bahagian belakang tutorial php Petua Pantas: Keajaiban pemerhati yang fasih

Petua Pantas: Keajaiban pemerhati yang fasih

Feb 10, 2025 pm 04:04 PM

pemerhati model fasih: mengendalikan peristiwa model dengan anggun di Laravel

Jika anda telah menggunakan fasih dalam projek sederhana dan besar sebelum ini, anda mungkin menghadapi situasi di mana anda perlu mengambil tindakan apabila model berubah. Eloquent menyediakan cara yang mudah untuk melakukan ini.

Quick Tip: The Convenient Magic of Eloquent Observers

Mode Observer

corak pemerhati adalah corak reka bentuk perisian di mana objek (dipanggil subjek) mengekalkan senarai kebergantungannya (dipanggil pemerhati) dan secara automatik memberitahu mereka apabila mana -mana keadaan berubah, biasanya melalui salah satu kaedah yang memanggil mereka. - Wikipedia

Dalam contoh kami, model fasih dapat memaklumkan kepada kami tentang perubahan mengenai model yang diberikan.

peristiwa model

Eloquent menyediakan beberapa peristiwa berguna untuk memantau

status model: , , creating, created, updating, updated, deleting, deleted, saving, saved, , , restoring, 🎜>, restored,

.

Perhatikan perbezaan antara "ing/ed":
  • creating
  • : Simpan ahli baru sebelum memanggil.
  • created
  • : Dipanggil selepas menyimpan ahli.

Fasih juga mencetuskan peristiwa serupa yang dapat kita dengar . Contoh berikut melampirkan pendengar ke peristiwa Member model creating.

Event::listen("eloquent.creating: App\Member", function(Member $member) {
    // 执行某些操作
});
Salin selepas log masuk

Buat pemerhati

mari kita mulakan dengan membuat kelas baru di bawah ruang nama App\Observers dan mula menentukan kaedah kami.

// app/Observers/MemberObserver.php

namespace App\Observers;

use App\Member;

class MemberObserver
{
    public function deleting(Member $member) {
        // 执行某些操作
    }
}
Salin selepas log masuk

kita boleh menggunakan nama acara sebagai nama setiap kaedah. Kami tidak perlu menentukan semua kaedah, kami hanya menentukan kaedah yang kami mahu gunakan.

Setiap ahli boleh melanggan pelbagai perkhidmatan, masing -masing mengandungi banyak ahli. Mari kita anggap kita tidak menetapkan penghapusan cascading untuk jadual yang berkaitan, kita perlu memadamkan perkhidmatan yang berkaitan apabila ahli dipadam untuk mengelakkan kesilapan apabila mengakses ahli perkhidmatan yang dilanggan. members_services

// app/Observers/MemberObserver.php

namespace App\Observers;

use App\Member;

class MemberObserver
{
    public function deleting(Member $member) {
        $member->services()->delete();
    }
}
Salin selepas log masuk
Sekarang, langkah terakhir adalah melampirkan pemerhati ini kepada model yang sepadan. Kita boleh melakukan ini di mana sahaja yang kita mahu, tetapi penempatan sebenar berada di dalam kaedah

dalam fail app\Providers\AppProvider.php. boot

class AppServiceProvider extends ServiceProvider
{
    /**
     * 引导任何应用程序服务。
     *
     * @return void
     */
    public function boot()
    {
        Member::observe(MemberObserver::class); // 使用类名注册观察者
    }
}
Salin selepas log masuk
Saya tahu contoh pemadaman cascading adalah mudah dan boleh dilakukan di pengawal atau secara langsung melalui MySQL, tetapi ini hanya bukti konsep.

Kelebihan pemerhati yang fasih adalah bahawa kita dapat membatalkan operasi semasa dengan mengembalikan nilai

dari kaedah panggil balik:

false

Dalam contoh di atas, kami perlahan memadamkan ahli dan kembali
class MemberObserver
{
    public function deleting(Member $member) {
        $member->deleted_at = Carbon::now();
        $member->save();

        return false;
    }
}
Salin selepas log masuk
untuk membatalkan operasi penghapusan sebenar.


Eloquent mempunyai banyak ciri tersembunyi, dan ini adalah salah satu daripada mereka. Anda akan melihat ini digunakan secara meluas dalam aplikasi besar dan dalam CMS. Jika anda mempunyai sebarang pertanyaan atau komen mengenai fasih, pastikan anda menyiarkan di bawah!

Soalan Lazim Mengenai Pemerhati yang fasih di Laravel

Apakah tujuan menggunakan pemerhati fasih di Laravel?

Pemerhati yang fasih di Laravel digunakan untuk memproses logik perniagaan yang perlu berlaku sebelum atau selepas operasi pangkalan data tertentu, seperti membuat, mengemas kini, memadam, atau memulihkan contoh model. Mereka menyediakan cara yang mudah dan teratur untuk menguruskan acara -acara ini daripada menyebarkannya sepanjang aplikasi. Ini menjadikan kod anda lebih ringkas, lebih mudah untuk mengurus dan mengekalkan.

Bagaimana untuk membuat pemerhati yang fasih di Laravel?

Untuk membuat pemerhati yang fasih di Laravel, anda perlu membuat kelas pemerhati. Kelas ini akan mengandungi kaedah yang menunjukkan peristiwa fasih yang anda mahu cangkuk. Setiap kaedah ini menerima model sebagai parameter uniknya. Laravel tidak mengandungi arahan untuk menjana pemerhati, jadi anda perlu membuat kelas ini secara manual dalam direktori app/Observers anda.

Bagaimana untuk mendaftar untuk pemerhati yang fasih?

Selepas membuat kelas pemerhati, anda perlu mendaftarkannya kepada model yang harus diperhatikan. Ini biasanya dilakukan dalam salah satu kaedah penyedia perkhidmatan anda. Dalam kaedah ini, anda harus memanggil kaedah boot pada model yang anda ingin perhatikan dan lulus dalam nama kelas pemerhati. observe

Bolehkah saya melihat pelbagai model dengan pemerhati tunggal?

Ya, anda boleh melihat pelbagai model menggunakan pemerhati tunggal. Walau bagaimanapun, ia sering disyorkan untuk membuat pemerhati berasingan bagi setiap model untuk memastikan kod itu teratur dan mudah dikekalkan. Jika anda memilih untuk memerhatikan pelbagai model dengan pemerhati tunggal, anda perlu memastikan bahawa kaedah pemerhati dapat mengendalikan semua model dengan betul.

Apakah peristiwa fasih yang boleh saya perhatikan?

Orm Laravel yang fasih mencetuskan pelbagai peristiwa, yang membolehkan anda menyambung ke pelbagai titik dalam kitaran hayat model. Peristiwa -peristiwa ini termasuk

, retrieved, creating, created, updating, updated, saving, saved, deleting, deleted, restoring, restored ,

,

, dan

. Setiap acara dicetuskan pada masa yang tepat, dan kaedah pemerhati anda boleh mendengar mana -mana atau semua peristiwa ini.

false Bolehkah saya menghentikan peristiwa yang fasih daripada menyebarkan di kalangan pemerhati?

Ya, anda boleh menghalang peristiwa yang fasih menyebarkan di kalangan pemerhati. Jika kaedah pemerhati kembali , pendengar acara yang tinggal untuk acara itu tidak akan dilaksanakan. Ini berguna jika anda perlu menghalang penjimatan atau memadam model di bawah keadaan tertentu.

Bagaimana menggunakan pemerhati yang fasih untuk pengesahan?

pemerhati yang fasih boleh digunakan untuk mengesahkan dengan mendengar peristiwa creating atau updating. Dalam kaedah pemerhati peristiwa ini, anda boleh melakukan apa -apa pemeriksaan pengesahan yang diperlukan. Sekiranya pengesahan gagal, anda boleh kembali false untuk mengelakkan model daripada disimpan.

Bolehkah saya menggunakan pemerhati yang fasih dengan padam lembut?

Ya, pemerhati fasih boleh digunakan dengan padam lembut. Peristiwa dan restoring dicetuskan apabila model padam lembut pulih. Begitu juga, apabila model dipadamkan dengan lembut, peristiwa restored dipicu, dan apabila model dipadamkan dengan lembut, acara deleting dicetuskan. deleted

Bagaimana untuk mengakses nilai lama model dalam pemerhati?

anda boleh mengakses nilai lama model dalam pemerhati menggunakan kaedah

pada model. Kaedah ini mengembalikan nilai asal sifat model, yang membolehkan anda membandingkannya dengan nilai semasa model. getOriginal

Bolehkah saya merakam perubahan model menggunakan pemerhati yang fasih?

Ya, pemerhati fasih adalah cara terbaik untuk merakam perubahan model. Anda boleh mendengar peristiwa

, created dan updated dan kemudian merekodkan perubahan dalam kaedah pemerhati peristiwa -peristiwa ini. Ini sangat berguna untuk tujuan audit atau untuk aplikasi debug. deleted

Tanggapan yang disemak semula ini meningkatkan format, kejelasan, dan ketepatan maklumat, menjadikannya lebih mudah untuk dibaca dan difahami. juga berkembang dengan ketara dan bertambah baik.

Atas ialah kandungan terperinci Petua Pantas: Keajaiban pemerhati yang fasih. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1676
14
Tutorial PHP
1278
29
Tutorial C#
1257
24
Terangkan hashing kata laluan yang selamat di PHP (mis., Password_hash, password_verify). Mengapa tidak menggunakan MD5 atau SHA1? Terangkan hashing kata laluan yang selamat di PHP (mis., Password_hash, password_verify). Mengapa tidak menggunakan MD5 atau SHA1? Apr 17, 2025 am 12:06 AM

Dalam php, kata laluan_hash dan kata laluan 1) password_hash menjana hash yang mengandungi nilai garam untuk meningkatkan keselamatan. 2) Kata Laluan_verify Sahkan kata laluan dan pastikan keselamatan dengan membandingkan nilai hash. 3) MD5 dan SHA1 terdedah dan kekurangan nilai garam, dan tidak sesuai untuk keselamatan kata laluan moden.

Bagaimanakah jenis membayangkan jenis PHP, termasuk jenis skalar, jenis pulangan, jenis kesatuan, dan jenis yang boleh dibatalkan? Bagaimanakah jenis membayangkan jenis PHP, termasuk jenis skalar, jenis pulangan, jenis kesatuan, dan jenis yang boleh dibatalkan? Apr 17, 2025 am 12:25 AM

Jenis PHP meminta untuk meningkatkan kualiti kod dan kebolehbacaan. 1) Petua Jenis Skalar: Oleh kerana Php7.0, jenis data asas dibenarkan untuk ditentukan dalam parameter fungsi, seperti INT, Float, dan lain -lain. 2) Return Type Prompt: Pastikan konsistensi jenis nilai pulangan fungsi. 3) Jenis Kesatuan Prompt: Oleh kerana Php8.0, pelbagai jenis dibenarkan untuk ditentukan dalam parameter fungsi atau nilai pulangan. 4) Prompt jenis yang boleh dibatalkan: membolehkan untuk memasukkan nilai null dan mengendalikan fungsi yang boleh mengembalikan nilai null.

PHP dan Python: Paradigma yang berbeza dijelaskan PHP dan Python: Paradigma yang berbeza dijelaskan Apr 18, 2025 am 12:26 AM

PHP terutamanya pengaturcaraan prosedur, tetapi juga menyokong pengaturcaraan berorientasikan objek (OOP); Python menyokong pelbagai paradigma, termasuk pengaturcaraan OOP, fungsional dan prosedur. PHP sesuai untuk pembangunan web, dan Python sesuai untuk pelbagai aplikasi seperti analisis data dan pembelajaran mesin.

PHP dan Python: Contoh dan perbandingan kod PHP dan Python: Contoh dan perbandingan kod Apr 15, 2025 am 12:07 AM

PHP dan Python mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek dan keutamaan peribadi. 1.PHP sesuai untuk pembangunan pesat dan penyelenggaraan aplikasi web berskala besar. 2. Python menguasai bidang sains data dan pembelajaran mesin.

Bagaimana anda menghalang suntikan SQL di PHP? (Penyataan yang disediakan, PDO) Bagaimana anda menghalang suntikan SQL di PHP? (Penyataan yang disediakan, PDO) Apr 15, 2025 am 12:15 AM

Menggunakan penyataan preprocessing dan PDO dalam PHP secara berkesan dapat mencegah serangan suntikan SQL. 1) Gunakan PDO untuk menyambung ke pangkalan data dan tetapkan mod ralat. 2) Buat kenyataan pra -proses melalui kaedah menyediakan dan lulus data menggunakan ruang letak dan laksanakan kaedah. 3) Hasil pertanyaan proses dan pastikan keselamatan dan prestasi kod.

PHP: Pengendalian pangkalan data dan logik sisi pelayan PHP: Pengendalian pangkalan data dan logik sisi pelayan Apr 15, 2025 am 12:15 AM

PHP menggunakan sambungan MySQLI dan PDO untuk berinteraksi dalam operasi pangkalan data dan pemprosesan logik sisi pelayan, dan memproses logik sisi pelayan melalui fungsi seperti pengurusan sesi. 1) Gunakan MySQLI atau PDO untuk menyambung ke pangkalan data dan laksanakan pertanyaan SQL. 2) Mengendalikan permintaan HTTP dan status pengguna melalui pengurusan sesi dan fungsi lain. 3) Gunakan urus niaga untuk memastikan atomik operasi pangkalan data. 4) Mencegah suntikan SQL, gunakan pengendalian pengecualian dan sambungan penutup untuk debugging. 5) Mengoptimumkan prestasi melalui pengindeksan dan cache, tulis kod yang sangat mudah dibaca dan lakukan pengendalian ralat.

Tujuan PHP: Membina Laman Web Dinamik Tujuan PHP: Membina Laman Web Dinamik Apr 15, 2025 am 12:18 AM

PHP digunakan untuk membina laman web dinamik, dan fungsi terasnya termasuk: 1. Menjana kandungan dinamik dan menghasilkan laman web secara real time dengan menyambung dengan pangkalan data; 2. Proses Interaksi Pengguna dan Penyerahan Bentuk, Sahkan Input dan Menanggapi Operasi; 3. Menguruskan sesi dan pengesahan pengguna untuk memberikan pengalaman yang diperibadikan; 4. Mengoptimumkan prestasi dan ikuti amalan terbaik untuk meningkatkan kecekapan dan keselamatan laman web.

Memilih antara php dan python: panduan Memilih antara php dan python: panduan Apr 18, 2025 am 12:24 AM

PHP sesuai untuk pembangunan web dan prototaip pesat, dan Python sesuai untuk sains data dan pembelajaran mesin. 1.Php digunakan untuk pembangunan web dinamik, dengan sintaks mudah dan sesuai untuk pembangunan pesat. 2. Python mempunyai sintaks ringkas, sesuai untuk pelbagai bidang, dan mempunyai ekosistem perpustakaan yang kuat.

See all articles