Bagaimana untuk menyelesaikan masalah bahawa templat thinkphp5 tidak boleh dimuatkan secara automatik
Dalam proses membangunkan rangka kerja thinkphp5, kami sering menggunakan pemaparan templat untuk memaparkan halaman, tetapi kadangkala kami menghadapi masalah bahawa templat tidak boleh Autoloading isu. Masalah ini mungkin menyusahkan sesetengah pengaturcara baru, jadi artikel ini akan memperkenalkan beberapa penyelesaian biasa untuk membantu semua orang menyelesaikan masalah ini dengan lebih baik.
Pertama sekali, mari kita lihat mekanisme pemuatan automatik templat thinkphp5.
Dalam rangka kerja thinkphp5, templat akan mencari fail templat yang sepadan secara automatik untuk pemaparan mengikut peraturan penamaan pengawal. Sebagai contoh, jika terdapat fail pengawal yang dipanggil Index.php, maka rangka kerja akan mencari fail templat /views/Index/index.html secara lalai. Dalam fail templat, anda boleh menggunakan beberapa sintaks mudah untuk melaksanakan operasi seperti output berubah-ubah, pertimbangan bersyarat dan lintasan gelung. Contohnya, anda boleh menggunakan {{$name}} untuk mengeluarkan nilai pembolehubah $name.
Tetapi jika kami mendapati bahawa apabila menggunakan sintaks di atas untuk pemaparan templat, templat yang sepadan dengan pengawal tidak boleh dimuatkan secara automatik, maka kami perlu menyelesaikan masalah dan penyelesaian yang berkaitan.
Menyelesaikan masalah biasa:
Dalam rangka kerja thinkphp5, fail templat disimpan dalam folder /views dan fail templat yang sepadan dengan pengawal yang sepadan hendaklah disimpan dalam /views/controller name/file name.html. Oleh itu, kami perlu menyemak sama ada laluan ke fail templat kami adalah betul, sama ada ia diletakkan dalam folder yang betul dan sama ada nama fail itu betul.
Seperti yang dinyatakan di atas, mekanisme pemuatan automatik templat rangka kerja thinkphp5 mencari fail templat yang sepadan berdasarkan peraturan penamaan pengawal. Oleh itu, jika penamaan pengawal kami tidak mematuhi spesifikasi, ia juga akan menyebabkan templat gagal dimuatkan secara automatik. Peraturan penamaan pengawal yang betul mestilah penamaan kes unta, seperti IndexController, GoodsController, dsb.
Dalam rangka kerja thinkphp5, nama fail templat hendaklah konsisten dengan nama fail templat di bawah pengawal yang sepadan. Sebagai contoh, fail templat di bawah pengawal Indeks harus dipanggil index.html. Jika fail templat di bawah pengawal tidak dinamakan dengan betul, templat tidak akan dimuatkan secara automatik.
Kadangkala kami mendayakan caching semasa membuat templat. Pada masa ini, jika kami mengemas kini fail templat tetapi cache tidak dikosongkan, templat baharu tidak akan dimuatkan. Oleh itu, jika kami menghadapi masalah pemuatan automatik semasa membuat templat, kami boleh cuba mengosongkan cache untuk menyelesaikannya.
Penyelesaian:
Selepas menyelesaikan masalah biasa di atas, jika templat masih tidak dapat dimuatkan secara automatik, kita boleh mencuba untuk membuat templat secara manual. Kami boleh menggunakan kod berikut untuk memaparkan templat secara manual:
public function index() { $view = new hinkView(); $view->assign('name', 'Hello,World'); return $view->fetch('index',['name'=>$name]); }
Jika memberikan templat secara manual masih tidak dapat menyelesaikan masalah, kami boleh cuba menggunakan kekerasan Tentukan laluan templat dan nama fail untuk menyelesaikan masalah. Kita boleh menambah kod berikut pada pengawal:
public function index() { return $this->fetch(ROOT_PATH . 'views/index/index.html'); }
Dengan cara ini kita boleh menentukan terus laluan dan nama fail templat, yang boleh menyelesaikan masalah pemuatan automatik dengan berkesan.
Akhir sekali, jika kaedah di atas masih tidak dapat menyelesaikan masalah, kita boleh cuba mengubah suai tetapan yang berkaitan dalam fail konfigurasi konfigurasi untuk menyelesaikannya masalahnya. Kita boleh menambah kod berikut pada fail config.php:
'view_replace_str' => [ '__PUBLIC__'=>'/static', '__ROOT__' => '/', '__INDEX__' => '/index.php/Index', ],
Dengan cara ini kita boleh memuatkan fail templat dalam bentuk /Index/index.html semasa membuat templat, menyelesaikan masalah pemuatan automatik dengan berkesan.
Ringkasan:
Masalah pemuatan automatik templat adalah masalah biasa dalam pembangunan rangka kerja thinkphp5, tetapi ia juga merupakan masalah yang agak mudah untuk diselesaikan. Jika kami menghadapi masalah sedemikian, kami boleh menyelesaikan masalah dan menyelesaikannya mengikut kaedah di atas untuk menjadikan pembangunan rangka kerja thinkphp5 kami lebih lancar.
Atas ialah kandungan terperinci templat thinkphp5 tidak boleh dimuatkan secara automatik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!