Rumah  >  Artikel  >  rangka kerja php  >  Cara menggunakan fungsi lompat segera dalam thinkphp3.2

Cara menggunakan fungsi lompat segera dalam thinkphp3.2

WBOY
WBOYke hadapan
2023-05-30 22:56:06984semak imbas

Dalam rangka kerja ThinkPHP, fungsi lompat boleh dilaksanakan menggunakan kaedah ubah hala. Oleh kerana kaedah ini ditakrifkan dalam kelas asas pengawal, pengawal boleh memanggilnya terus untuk melaksanakan fungsi lompat segera. Kaedah ubah hala menerima dua parameter: $url dan $params.

Antaranya, $url ialah alamat URL yang diubah hala. Parameter boleh menjadi rentetan ringkas, tatasusunan atau nilai sauh bermula dengan #. Jika parameter $Url ialah tatasusunan, ia boleh mengandungi alias peraturan penghalaan, nama pengawal, nama operasi dan senarai parameter. Iaitu, tatasusunan boleh mencapai kesan lompatan yang berbeza dengan menentukan elemen yang berbeza.

$params ialah parameter pilihan yang boleh digunakan untuk menentukan parameter untuk ditambahkan pada permintaan GET. Parameter ini hanya sah jika tiada rentetan pertanyaan (iaitu "?") dalam URL. Jika URL sudah mengandungi rentetan pertanyaan, $params akan diabaikan.

Berikut ialah contoh penggunaan kaedah ubah hala:

class IndexController extends Controller
{
    public function index()
    {
        // 直接跳转到百度首页
        $this->redirect('http://www.baidu.com');
    }

    public function test()
    {
        // 跳转到当前控制器Index操作中
        $this->redirect('Index/index');

        // 跳转到Home控制器中的Index操作
        $this->redirect('Home/Index/index');

        // 跳转并传递$name参数
        $this->redirect('Index/index', array('name' => 'ThinkPHP'));

        // 跳转并传递多个参数
        $this->redirect('Index/index', array('name' => 'ThinkPHP', 'id' => 100));
    }
}

Dalam contoh kod di atas, kaedah ubah hala digunakan untuk melaksanakan pelbagai fungsi lompat. Contohnya, $this->redirect('http://www.baidu.com'); ialah operasi yang melompat terus ke halaman utama Baidu. $this->redirect('Index/index'); melompat ke operasi Indeks pengawal semasa. $this->redirect('Home/Index/index'); merujuk kepada melompat ke operasi Indeks dalam pengawal Rumah. $this->redirect('Index/index', array('name' => 'ThinkPHP')); melompat dan melepasi parameter $name. $this->redirect('Index/index', array('name' => 'ThinkPHP', 'id' => 100)); ialah melompat dan melepasi berbilang parameter.

Selain mengubah hala halaman web ke URL yang ditentukan, kaedah ubah hala juga boleh mengubah halanya kepada alias peraturan penghalaan. Dalam kes ini, parameter $url haruslah alias penghalaan, bukan alamat URL. Sebagai contoh, katakan kita mempunyai peraturan penghalaan berikut:

// 路由规则定义
'link/:id' => 'Links/link',

Kita boleh memanggil kaedah ubah hala dalam pengawal menggunakan alias peraturan penghalaan "pautan" untuk melompat ke halaman pautan. Contohnya:

class LinksController extends Controller
{
    public function link()
    {
        $id = I('get.id');
        $link = M('Links')->where(array('id'=>$id))->find();

        // 验证链接是否存在
        if ($link) {
            // 跳转到重定义的路由规则上
            $this->redirect('link/'.$id);
        } else {
            $this->error('链接不存在!');
        }
    }
}

Dalam contoh kod di atas, kami menggunakan ubah hala ke alias peraturan penghalaan yang ditakrifkan semula dalam kaedah pautan pengawal Pautan. "$this->redirect('link/'.$id);" Alias ​​laluan digunakan dan parameter dihantar untuk melompat ke halaman pautan.

Atas ialah kandungan terperinci Cara menggunakan fungsi lompat segera dalam thinkphp3.2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam