多条件多过滤展示结果列表该如何重写?
这个是后台展示订单的列表,基础需求是要求可以在搜索框根据user的相关信息进行搜索,比如user_id
,注册的email
,也可以在搜索框中根据order的相关信息进行搜索展示,比如order_id
,order_type
,下单的creat_time
范围等。
1、前期为了业务的快速上线,全部东西都是扔在controller里面的,多数是用if..else
来做搜索展示,当需求不断增加,比如增加了user_phone
,增加order_state
订单状态(关闭、进行中)等等的时候又得写if...else
,导致controller
的这个function
不断肥大。
2、不同的查询组别又有不同的查询权限,比如超级管理员能查询到全部用户,卖家只能查询到自己的买家的用户,所以user
又是不同。所以这段代码在不同的controller
里面不断地复制粘贴。
现在想重构,想把这个搜索功能独立成trait
或者是让controller
依赖的service
? 不知道该如何处理这些搜索的参数,和如果分离,请教一下各位是否有相关的文章,或者书籍、实例对类似的功能做了优化的
~~ 谢谢!
回复内容:
这个是后台展示订单的列表,基础需求是要求可以在搜索框根据user的相关信息进行搜索,比如user_id
,注册的email
,也可以在搜索框中根据order的相关信息进行搜索展示,比如order_id
,order_type
,下单的creat_time
范围等。
1、前期为了业务的快速上线,全部东西都是扔在controller里面的,多数是用if..else
来做搜索展示,当需求不断增加,比如增加了user_phone
,增加order_state
订单状态(关闭、进行中)等等的时候又得写if...else
,导致controller
的这个function
不断肥大。
2、不同的查询组别又有不同的查询权限,比如超级管理员能查询到全部用户,卖家只能查询到自己的买家的用户,所以user
又是不同。所以这段代码在不同的controller
里面不断地复制粘贴。
现在想重构,想把这个搜索功能独立成trait
或者是让controller
依赖的service
? 不知道该如何处理这些搜索的参数,和如果分离,请教一下各位是否有相关的文章,或者书籍、实例对类似的功能做了优化的
~~ 谢谢!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











AI boleh membantu mengoptimumkan penggunaan komposer. Kaedah khusus termasuk: 1. Pengoptimuman Pengurusan Ketergantungan: AI menganalisis kebergantungan, mengesyorkan kombinasi versi terbaik, dan mengurangkan konflik. 2. Generasi Kod Automatik: AI menjana fail komposer.json yang sesuai dengan amalan terbaik. 3. Meningkatkan Kualiti Kod: AI mengesan masalah yang berpotensi, memberikan cadangan pengoptimuman, dan meningkatkan kualiti kod. Kaedah ini dilaksanakan melalui pembelajaran mesin dan teknologi pemprosesan bahasa semulajadi untuk membantu pemaju meningkatkan kecekapan dan kualiti kod.

session_start () iscrucialinphpformanaginguserSessions.1) itinitiatesanewsessionifnoneexists, 2) resumeSanexistingsession, dan3) setSasessionCookieforcontinuityAcrossrequests, enableingApplicationeUseUshenticationandPersonalConizedConizedContentContentContentContentContentContentContentContentContentContentContentC.

Perbezaan utama antara Laravel dan Yii adalah konsep reka bentuk, ciri -ciri fungsional dan senario penggunaan. 1. Laravel memberi tumpuan kepada kesederhanaan dan keseronokan pembangunan, dan menyediakan fungsi yang kaya seperti alat eloquentorm dan artisan, sesuai untuk pembangunan dan pemula yang pesat. 2.YII menekankan prestasi dan kecekapan, sesuai untuk aplikasi beban tinggi, dan menyediakan sistem Activerecord dan cache yang cekap, tetapi mempunyai lengkung pembelajaran yang curam.

Fungsi MySQL boleh digunakan untuk pemprosesan dan pengiraan data. 1. Penggunaan asas termasuk pemprosesan rentetan, pengiraan tarikh dan operasi matematik. 2. Penggunaan lanjutan melibatkan menggabungkan pelbagai fungsi untuk melaksanakan operasi kompleks. 3. Pengoptimuman prestasi memerlukan mengelakkan penggunaan fungsi dalam klausa WHERE dan menggunakan GroupBy dan jadual sementara.

Pakej lanjutan Laravel yang penting untuk 2024 termasuk: 1 Laraveldebrugbar, yang digunakan untuk memantau dan debug kod; 2. Laraveltelescope, menyediakan pemantauan aplikasi terperinci; 3. Laravelhorizon, menguruskan tugas -tugas redis. Pek pengembangan ini dapat meningkatkan kecekapan pembangunan dan prestasi aplikasi.

Komposer adalah alat pengurusan ketergantungan untuk PHP, dan menguruskan kebergantungan projek melalui fail komposer.json. 1) parse composer.json untuk mendapatkan maklumat ketergantungan; 2) Mengurangkan kebergantungan untuk membentuk pokok pergantungan; 3) Muat turun dan pasangkan kebergantungan dari Packagist ke Direktori Vendor; 4) Menjana fail komposer.lock untuk mengunci versi ketergantungan untuk memastikan konsistensi pasukan dan kebolehkerjaan projek.

Mengintegrasikan Sentry dan BugsNag di Laravel dapat meningkatkan kestabilan dan prestasi aplikasi. 1. Tambah sentrysdk dalam komposer.json. 2. Tambah penyedia perkhidmatan sentry dalam config/app.php. 3. Konfigurasikan sentrydsn dalam fail .env. 4. Tambah Laporan Kesalahan Sentry dalam APP \ Exceptions \ handler.php. 5. Gunakan Sentry untuk menangkap dan melaporkan pengecualian dan menambah maklumat konteks tambahan. 6. Tambah laporan ralat bugsnag dalam apl \ exceptions \ handler.php. 7. Gunakan pemantauan bugsnag

Membina aplikasi sembang secara langsung di Laravel memerlukan menggunakan WebSocket dan Penolak. Langkah -langkah khusus termasuk: 1) Konfigurasi maklumat penolak dalam fail .env; 2) tetapkan pemandu penyiaran dalam fail penyiaran.php kepada penolak; 3) melanggan saluran penolak dan mendengar peristiwa menggunakan Laravelecho; 4) Hantar mesej melalui API Pusher; 5) melaksanakan saluran peribadi dan pengesahan pengguna; 6) Melaksanakan pengoptimuman prestasi dan debugging.
