cari

Rumah  >  Soal Jawab  >  teks badan

Dalam rangka kerja pembangunan MVC, apabila menyerahkan semakan kesahihan kandungan yang dimasukkan oleh pengguna, adakah ia dilengkapkan oleh c atau m?

Apabila anda sedang menggunakan rangka kerja pembangunan MVC, apabila menyemak kesahihan teks input pengguna pada bahagian hadapan pengguna, apabila pengguna menyerahkan, adakah ini harus dikendalikan oleh lapisan C atau lapisan M?

phpcn_u1582phpcn_u15822747 hari yang lalu1093

membalas semua(13)saya akan balas

  • 某草草

    某草草2017-05-16 17:08:31

    Saya harus bersetuju dengan kenyataan Yi Wei Izinkan saya menambah pemahaman saya untuk memastikan pengalaman pengguna, supaya pengguna tidak akan menemui ralat selepas penyerahan dan kembali untuk membetulkannya data itu sendiri. Pengesahan (sama ada data milik pengguna, dan sama ada perubahan status data memenuhi keperluan logik), M berurus niaga untuk memastikan kewujudan data, jika data tidak wujud, tidak perlu pergi ke bawah , mesti tak normal.

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-16 17:08:31

    Soalan ini perlu dianalisis dalam kombinasi dengan aplikasi tertentu, bahasa tertentu dan rangka kerja tertentu, malah berkaitan dengan gaya dan komposisi ahli pasukan.

    Saya secara peribadi lebih suka M untuk melakukan logik pengesahan, membuang pengecualian, dan kemudian C untuk menangkap dan menukarnya kepada format yang diperlukan oleh bahagian hadapan untuk output. Kod awal ini mungkin agak bertele-tele, tetapi ia lebih bermanfaat kepada integriti logik dan pengembangan kemudian.

    Pendekatan lain ialah mewujudkan lapisan logik yang dipanggil antara M dan C untuk mengendalikan logik pengesahan dan sebahagian daripada logik perniagaan

    balas
    0
  • PHP中文网

    PHP中文网2017-05-16 17:08:31

    Secara amnya, dalam rangka kerja MVC, lapisan perkhidmatan akan ditambah berdasarkan pemprosesan perniagaan Model akan dipetakan atau dibuang terus dan tulis DAO Okay, sekarang mari kita bincangkan tentang lapisan mana pengesahan dilakukan. Yang paling betul Kaedah adalah pengawal kedua-dua lapisan C dan lapisan perkhidmatan S mesti dilakukan, kerana apabila laman web berkembang, ia pasti perlu untuk memisahkan perkhidmatan sebagai komponen perkhidmatan awam untuk panggilan jauh, jadi jika anda tidak melakukan pengesahan pada lapisan pengawal , akan ada Untuk permintaan data, anda terus menghantarnya ke perkhidmatan awam Jika terdapat masalah dengan data, dan kemudian mengembalikan ralat, ini jelas akan membazirkan IO rangkaian Jadi jika anda telah melakukan pengesahan data di peringkat pengawal , apabila data tidak betul , buang pengecualian terus, tidak perlu membuat panggilan jauh melalui RPC

    balas
    0
  • 習慣沉默

    習慣沉默2017-05-16 17:08:31

    Ini pasti bergantung pada situasi:

    • Kesahihan format teks: Hanya gunakan pengesahan js atau ungkapan biasa untuk mengendalikannya di bahagian hadapan.
    • Isu kesahihan data:

      • Kes mudah: Contohnya, mengesahkan kesahihan tahun, bulan dan hari juga boleh dilakukan di bahagian hadapan.
      • Situasi yang lebih luas: termasuk dua situasi di atas, serta pengesahan nama pengguna, pengesahan kebolehulangan, dll., situasi yang melibatkan logik perniagaan tertentu, yang diwakili oleh rangka kerja Rails, diletakkan dalam Model untuk melengkapkan pengesahan.

    Model gemuk, pengawal kurus.

    balas
    0
  • 天蓬老师

    天蓬老师2017-05-16 17:08:31

    Pengekodan Echang mempunyai prinsip: antara muka tidak mempercayai satu sama lain.

    balas
    0
  • 世界只因有你

    世界只因有你2017-05-16 17:08:31

    Jika anda menulis sendiri tanpa sebarang rangka kerja, ia sepatutnya tergolong dalam lapisan c. Tetapi lebih banyak rangka kerja cenderung diletakkan dalam lapisan m.

    Selain itu, jangan hanya melakukan pengesahan input pada lapisan v Bahan bahagian hadapan boleh dipintas dengan mudah, yang menimbulkan risiko keselamatan.

    balas
    0
  • 阿神

    阿神2017-05-16 17:08:31

    Setiap lapisan mesti dilakukan dengan penekanan yang berbeza.

    Kami biasanya menambah lapisan Perkhidmatan antara C-M MVC (tetapi ia juga boleh difahami sebagai sebahagian daripada C atau M Lapisan ini direka bentuk untuk dipisahkan daripada View dan Controller, dan boleh dilucutkan secara bebas ke luar). API).

    Jadi,
    Dalam Paparan, lakukan semakan kesahihan yang agak lemah bagi satu nilai,
    Dalam Pengawal, sahkan kesahihan paket permintaan luaran dan sahkan beberapa kebenaran antara muka pengguna
    Lakukan pengesahan kesahihan data yang ketat, pengesahan kekangan logik perniagaan dan pengesahan kebenaran data pengguna dalam Perkhidmatan
    Lakukan pengesahan kesahihan fizikal data dalam Model.

    balas
    0
  • 天蓬老师

    天蓬老师2017-05-16 17:08:31

    Jika subjek telah menggunakan rangka kerja seperti Django atau Flask Python, anda akan mendapati terdapat juga kelas Borang. Secara umumnya, logik pengesahan kandungan pengguna akan diletakkan dalam kelas Borang. Kerana kadangkala, kita mungkin perlu membuat peraturan pengesahan yang berbeza untuk model Data yang sama mengikut situasi yang berbeza. Sudah tentu, Django juga menyokong pengesahan lapisan model. Secara relatifnya. Lapisan Borang melakukan ini dengan tahap gandingan yang lebih rendah.

    balas
    0
  • 習慣沉默

    習慣沉默2017-05-16 17:08:31

    MVC mudah biasanya melakukan pengesahan FORM pada lapisan model, manakala penyelesaian yang lebih matang biasanya memisahkan FORM sebagai contoh, ia mempunyai lapisan FORM dan disepadukan ke dalam lapisan model pelaksanaan fungsi nampaknya tiada kaitan dengan lapisan model.

    balas
    0
  • PHPz

    PHPz2017-05-16 17:08:31

    Malah, semakan kesahihan juga dibahagikan kepada bahagian tempatan dan pelayan.
    Sebagai contoh, jika input kosong, ia diperiksa pada lapisan V jika format input tidak betul, ia diperiksa pada lapisan M.
    Jika anda ingin menyemak lebih lanjut sama ada ia layak, anda boleh meletakkannya pada lapisan M dan menyemaknya dengan mengakses pelayan.

    balas
    0
  • Batalbalas