Rumah >rangka kerja php >ThinkPHP >tutorial pengkapsulan halaman lompat thinkphp

tutorial pengkapsulan halaman lompat thinkphp

王林
王林asal
2023-05-29 11:10:38543semak imbas

ThinkPHP ialah rangka kerja pembangunan PHP sumber terbuka yang menyediakan sokongan corak MVC yang berkuasa, membolehkan pembangun membangunkan aplikasi Web yang mantap dengan cepat. Apabila membangunkan aplikasi web, lompatan halaman sering diperlukan. Contohnya, selepas pengguna berjaya log masuk, dia perlu melompat ke antara muka pengguna. Artikel ini akan memperkenalkan cara menggunakan ThinkPHP untuk melompat ke halaman dan merangkum fungsi halaman lompat.

1. Gunakan ThinkPHP untuk lompat halaman

ThinkPHP menyediakan dua fungsi terbina dalam untuk lompat halaman:

  1. fungsi redirect()

fungsi redirect() digunakan untuk melompat ke alamat URL yang ditentukan. Sintaksnya adalah seperti berikut:

redirect('url', '参数', '状态码')->send();

di mana:

  • url: alamat URL yang akan diubah hala.
  • Parameter: parameter kaedah GET, yang boleh menjadi tatasusunan atau rentetan.
  • Kod status: Kod status HTTP, seperti 302 untuk ubah hala dan 301 untuk ubah hala kekal.

Sebagai contoh, untuk melompat ke halaman http://www.example.com/user/index, kodnya adalah seperti berikut:

redirect('http://www.example.com/user/index')->send();
  1. success() dan fungsi error()

fungsi kejayaan() dan ralat() digunakan untuk memaparkan mesej gesaan apabila halaman melompat. Maklumat gesaan kejayaan menggunakan fungsi success() dan maklumat gesaan kegagalan menggunakan fungsi ralat(). Sintaks mereka adalah seperti berikut:

success('提示信息', '跳转URL', '等待时间')->send();
error('提示信息', '跳转URL', '等待时间')->send();

Antaranya:

  • Maklumat segera: maklumat yang akan dipaparkan, yang boleh menjadi rentetan atau tatasusunan.
  • URL Lompat: Alamat URL untuk dilompat, boleh diabaikan.
  • Masa menunggu: masa menunggu dalam saat, lalai ialah 1 saat dan boleh diabaikan.

Sebagai contoh, untuk memaparkan mesej kejayaan dan melompat ke halaman http://www.example.com/user/index, kodnya adalah seperti berikut:

success('登录成功', 'http://www.example.com/user/index')->send();

2 . Lompatan Enkapsulasi Fungsi pemindahan halaman

Untuk memudahkan penggunaan semula, kami boleh merangkum lompatan halaman. Berikut ialah kod fungsi halaman lompat mudah:

/**
 * 跳转页函数
 *
 * @param string $url 要跳转的URL地址
 * @param string $message 信息提示
 * @param int $waitTime 等待时间
 * @return void
 */
function jump($url, $message = '', $waitTime = 1) {
    if (empty($url)) {
        exit('错误:未指定跳转URL地址!');
    }
    if (!empty($message)) {
        $message = htmlspecialchars($message);
    }
    if ($waitTime == 0) {
        header("Location: {$url}");
        exit;
    }
    $css = <<<EOF
    <style type="text/css">
    .jump {
        text-align:center;
        padding-top:5%;
        font-family: 'Microsoft Yahei', Verdana, Arial;
        font-size:16px;
    }
    .jump h3 {
        font-size:24px;
        font-weight:bold;
    }
    </style>
EOF;
    $html = <<<EOF
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>跳转提示</title>
{$css}
</head>
<body>
    <div class="jump">
        <h3>跳转提示</h3>
        <p>{$message}</p>
        <p>等待时间:<span id="wait_time">{$waitTime}</span>秒</p>
        <p><a href="{$url}">立即跳转</a></p>
    </div>
    <script type="text/javascript">
        var wait_time = {$waitTime};
        var interval = setInterval(function(){
            if(wait_time > 0) {
                wait_time--;
                document.getElementById('wait_time').innerHTML = wait_time;
            } else {
                clearInterval(interval);
                window.location.href = '{$url}';
            }
        }, 1000);
    </script>
</body>
</html>
EOF;
    echo $html;
}

Menggunakan fungsi enkapsulasi di atas, kod berikut boleh dilaksanakan dalam pengawal:

public function login() {
    if($this->request->post()){
        $data = $this->request->post();
        // 验证码验证

        $user = UserModel::where('username', $data['username'])->find();
        if(!$user || $user->password != $data['password']){
            jump(url('login/index'), '用户名或密码错误', 3);
        } else {
            jump(url('user/index'), '登录成功', 3);
        }
    }
    return $this->fetch();
}

Di atas menggunakan ThinkPHP untuk melompat ke halaman dan merangkumkan lompatan Tutorial pada fungsi mengubah halaman. Gunakan fungsi pembungkus untuk menggunakannya semula dengan mudah dalam pengawal yang berbeza.

Atas ialah kandungan terperinci tutorial pengkapsulan halaman lompat thinkphp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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