Maison  >  Article  >  cadre php  >  tutoriel d'encapsulation de page de saut thinkphp

tutoriel d'encapsulation de page de saut thinkphp

王林
王林original
2023-05-29 11:10:38517parcourir

ThinkPHP est un framework de développement PHP open source qui fournit une prise en charge puissante des modèles MVC, permettant aux développeurs de développer rapidement des applications Web robustes. Lors du développement d'applications Web, des sauts de page sont souvent nécessaires. Par exemple, une fois qu'un utilisateur s'est connecté avec succès, il doit accéder à l'interface utilisateur. Cet article explique comment utiliser ThinkPHP pour accéder aux pages et encapsuler une fonction de saut de page.

1. Utilisez ThinkPHP pour les sauts de page

ThinkPHP fournit deux fonctions intégrées pour les sauts de page :

  1. fonction redirect()

la fonction redirect() est utilisée pour accéder à l'adresse URL spécifiée. Sa syntaxe est la suivante :

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

Où :

  • url : L'adresse URL à rediriger.
  • Paramètres : paramètres de la méthode GET, qui peuvent être des tableaux ou des chaînes.
  • Code d'état : code d'état HTTP, tel que 302 pour la redirection et 301 pour la redirection permanente.

Par exemple, pour accéder à la page http://www.example.com/user/index, le code est le suivant :

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

success() et Fonctions error() Utilisées pour afficher un message d'invite lorsque la page saute. Les informations d'invite de réussite utilisent la fonction success() et les informations d'invite d'échec utilisent la fonction error(). Leur syntaxe est la suivante :

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

Parmi eux :

  • Prompt information : l'information à afficher, qui peut être une chaîne ou un tableau.
  • URL de saut : l'adresse URL vers laquelle accéder, peut être omise.
  • Temps d'attente : temps d'attente en secondes, la valeur par défaut est de 1 seconde et peut être omise.

Par exemple, pour afficher un message de réussite et accéder à la page http://www.example.com/user/index, le code est le suivant :

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

2. Encapsulez la fonction de saut de page

Dans l'ordre pour faciliter la réutilisation, nous pouvons encapsuler les sauts de page. Ce qui suit est un simple code de fonction de page de saut :

/**
 * 跳转页函数
 *
 * @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;
}

En utilisant la fonction d'encapsulation ci-dessus, vous pouvez implémenter le code suivant dans le contrôleur :

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();
}

Ce qui précède est un didacticiel sur l'utilisation de ThinkPHP pour accéder à la page et encapsuler la page de saut. fonction. Utilisez les fonctions wrapper pour les réutiliser facilement dans différents contrôleurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn