Rumah > rangka kerja php > ThinkPHP > Bagaimana untuk menyelesaikan masalah penghalaan thinkphp tidak menukar

Bagaimana untuk menyelesaikan masalah penghalaan thinkphp tidak menukar

WBOY
Lepaskan: 2023-05-27 17:07:22
ke hadapan
1456 orang telah melayarinya

1. Penerangan Masalah

Apabila kita menggunakan ThinkPHP untuk pembangunan, kadangkala kita menghadapi situasi ini: apabila kita melakukan beberapa operasi penghalaan, halaman Ia tidak lompat ke antara muka yang kami jangkakan.

Sebagai contoh, kami ingin mengakses kaedah "do" dalam "HomeController.php" melalui URL "www.example.com/home/do", tetapi kami sebenarnya tidak boleh mengakses kaedah ini. Pada masa yang sama, kami mendapati tiada mesej ralat muncul, yang menyebabkan kami tidak dapat memulakan.

2. Analisis sebab

Dalam ThinkPHP, laluan dipadankan melalui akhiran URL. Jika kami tidak menggunakan sebarang akhiran dalam URL kami, maka ThinkPHP akan berfikir bahawa kaedah yang ingin kami akses ialah kaedah lalai dalam pengawal (nama kaedah lalai biasanya "indeks").

Sebagai contoh, apabila kami menggunakan URL "www.example.com/home/index", kaedah "index" dalam "HomeController.php" akan diakses secara lalai.

Apabila kami menggunakan URL "www.example.com/home/do", kerana tiada akhiran digunakan, ThinkPHP akan berfikir bahawa kami ingin mengakses kaedah "indeks", dan kerana "do " kaedah Ia tidak wujud dalam pengawal, jadi akses halaman akan gagal.

3 Penyelesaian

1 Gunakan akhiran "/"

Jika anda menambah garis miring "/" di hujung URL, anda boleh mengelak situasi tidak sepadan laluan. Sebagai contoh, kita boleh menggunakan URL "www.example.com/home/do/" untuk mengakses kaedah "do" dalam "HomeController.php".

Pada masa yang sama, apabila kami menggunakan ThinkPHP untuk pembangunan, adalah disyorkan untuk menetapkan akhiran URL kepada "/" dalam fail konfigurasi config.php, untuk mengelakkan masalah laluan tidak ditukar.

2. Ubah suai peraturan penghalaan

Kami juga boleh menyelesaikan masalah dengan mengubah suai peraturan penghalaan.

Pertama, dalam fail konfigurasi penghalaan kami (biasanya route.php), kami boleh mentakrifkan peraturan penghalaan sebagai:

return [
    'home/do/[:id]' => 'home/[:action]',
];
Salin selepas log masuk

Dengan cara ini, kami boleh menghantar URL "www.example. com /home/do/1" untuk mengakses kaedah "do" dalam "HomeController.php" dan lulus parameter id dalam URL.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah penghalaan thinkphp tidak menukar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan