Dalam model MVC, pengawal ialah saluran paip dan Model ialah pemproses. Tetapi banyak kali Pengawal memerlukan kandungan yang berbeza daripada jadual yang berbeza. Dengan cara ini, akan terdapat banyak fungsi dalam Model seperti get_name, get_info, get_id, dll. yang boleh dilengkapkan dengan hanya satu Pertanyaan. Terasa menyusahkan. Sebenarnya, adalah baik untuk menulis Pertanyaan di mana Pengawal akan digunakan, tetapi ini melanggar peraturan MVC.
Idea semasa adalah untuk meletakkan fungsi yang paling banyak digunakan ke dalam Model dan meninggalkan yang berpecah-belah dalam Pengawal.
Tolong berikan saya pendapat anda~
C Nipis, M gemuk, C tidak boleh melebihi 15 baris
Malah, masalah yang anda nyatakan boleh diselesaikan oleh banyak rangka kerja, iaitu, fungsi rekod aktif, yang secara dinamik menjana pernyataan pertanyaan berdasarkan kod Ia mula-mula dipromosikan dalam rangka kerja rel dan dilaksanakan secara beransur-ansur dalam bahasa lain. Contohnya
Malah, jika rangka kerja anda menyokong rekod aktif, kami tidak perlu menulis satu baris kod dalam model untuk pertanyaan mudah seperti itu berdasarkan kunci utama Model kelas asas dipasang ke dalam pernyataan pertanyaan yang sesuai berdasarkan nama kaedah yang anda panggil, dan Kembalikan hasil pertanyaan kepada anda.
Saya tidak tahu bahasa yang anda gunakan, tetapi pada asasnya semua bahasa skrip mempunyai pelaksanaan rekod yang aktif Anda boleh melaksanakan fungsi ini dalam projek anda sendiri, yang juga akan membawa manfaat kepada pembangunan seterusnya.
Masalah yang boleh dikekang dalam kod adalah lebih berkesan daripada menetapkan beberapa prinsip reka bentuk, kerana anda tidak dapat menjamin bahawa setiap pembangun mempunyai tahap yang sama.
Anda boleh merujuk kepada buku corak Fowler, skrip transaksi, modul jadual dan tiga gaya model domain.
Saya tidak tahu bagaimana CI melaksanakan rekod aktif, tetapi fungsi kecil yang anda nyatakan ialah kaedah ajaib yang digunakan dalam banyak pelaksanaan rekod aktif PHP, atau penjana kod menjananya secara automatik untuk anda, jadi anda tidak perlu menulisnya sendiri .
Sebagai contoh, rekod aktif dilaksanakan dalam doktrin seperti ini: Jika terdapat jadual foo dengan medan bar1, bar2, dan bar3, doktrin akan terus menjana empat fail mengikut skema jadual: FooTable.class.php, FooTableBase.class. php , Foo.class.php, FooBase.class.php. Dalam dua fail asas, akan terdapat satu siri getter dan setter yang dijana secara automatik seperti getBar1(), setBar1($param). Fail asas tidak dibenarkan untuk diubah suai oleh pengaturcara sendiri, ia akan berubah apabila skema berubah. Kelas bukan asas secara langsung mewarisi kelas asas, jadi ia kelihatan lebih bersih
Letakkan logik aplikasi anda dalam model
Mari lakukan pelapisan. Pengawal bertanggungjawab untuk logik kawalan peringkat halaman
.. . . . . . . . .