Saya mengalihkan semua pengawal ke /src/Web/Controller
dalam projek Symfony 6 saya seperti yang ditunjukkan di bawah
├── src │ ├── ... │ └── Web │ | ├── Controller │ | ├── .... | |── Kernel.php
Saya routes.yaml
diubah suai sewajarnya
#routes.yaml controllers: resource: ../src/Web/Controller/ type: annotation
Sekarang masalahnya ialah semua laluan saya mempunyai nama yang diawali dengan app_web
. Saya rasa ia disebabkan oleh struktur ini.
$ php bin/console debug:router
Output arahan adalah seperti berikut:
... ... app_web_post_index GET|HEAD ANY ANY /post/ app_web_post_create GET|HEAD|POST ANY ANY /post/create
Di sini saya hanya mahu nama itu sahaja post_index
Bagaimana hendak membuang awalan ini?
Jika anda tidak menamakan laluan secara eksplisit, mereka akan menamakannya untuk anda.
Nama dijana menggunakan nama kelas dan kaedah pengawal yang layak sepenuhnya (walaupun atas sebab tertentu tiada bahagian terakhir ruang nama -
controller
).Jika anda tidak mahu menggunakan nama yang dijana secara automatik, cuma namakan laluan anda sendiri:
Menggunakan pilihan terbina dalam anda boleh menambah awalan pada set laluan, tetapi jangan keluarkannya daripada nama yang dijana secara automatik.
Jika ini benar-benar penting untuk kes penggunaan anda berlaku "secara automatik", saya rasa anda boleh membina pemuat laluan anda sendiri, tetapi saya akan katakan itu agak berlebihan. Namakan laluan dengan betul atau gunakan nama yang dijana secara automatik.
Menamakan laluan secara eksplisit biasanya merupakan idea/amalan yang lebih baik kerana jika anda merujuk nama laluan di tempat lain, nama itu dijamin kekal sama walaupun anda memilih untuk memfaktorkan semula pengawal ke dalam struktur kod yang berbeza.