Maison > cadre php > PensezPHP > conseils de redirection thinkphp6

conseils de redirection thinkphp6

爆肝混世大魔王-流笙 第五人格服务
Libérer: 2021-05-06 09:22:45
original
227 Les gens l'ont consulté

1. Préparez le fichier de modèle de saut

Copiez le fichier de modèle de saut de l'ancien framework ThinkPHP

vers l'ancien fichier principal du framework/thinkphp/tpl/dispatch_jump

<.>, par exemple, mettez-le dans : /public/tpl/dispatch_jump.tpl

2 Modifiez le fichier de configuration

dans /config/app.php et ajoutez les 2 lignes suivantes de. code Dans le fichier de configuration, c'est le suivant :

// Fichier modèle correspondant à la page de saut par défaut [Nouveau]

'dispatch_success_tmpl' => app()->getRootPath() '. /public/ tpl/dispatch_jump.tpl',
'dispatch_error_tmpl' => app()->getRootPath() '/public/tpl/dispatch_jump.tpl',
——————— ——— ——————

3. Modifiez la classe du contrôleur de base

dans /app/BaseController.php

(1) Ajoutez ce qui suit en haut des 2 lignes de code, le fichier importé est le suivant :

//

// Les 2 lignes suivantes, afin d'utiliser l'ancienne version de success error redirect, sautez
/ /
use thinkexceptionHttpResponseException;
use thinkfacadeRequest;
————————————————

2) Ensuite, apportez des modifications dans cette base fichier de classe du contrôleur et ajoutez-le directement Le code suivant : "

//
// 以下为新增,为了使用旧版的 réussite erreur redirection 跳转  start
//

/**
* Méthode de raccourci pour un saut réussi
* @access protected
* @param Mixed $msg Message d'invite
* @param string $url Adresse URL du saut
* @param Mixed $data Données renvoyées
* @param integer $wait Temps d'attente du saut
* @param array $header Informations d'en-tête envoyées
* @return void
*/
fonction protégée succès ($msg = '', string $url = null, $data = '', int $wait = 3, array $header = [])
{
   if (is_null($url) && isset($ _SERVER["HTTP_REFERER"])) {
       $url = $_SERVER["HTTP_REFERER"];
    } elseif ($url) {
       $url = (strpos($url, '://' ) || 0 === strpos($url, '/')) ? $url : app('route')->buildUrl($url);
     }

   $result = [
       'code' => 1,
       'msg'  => $msg,
       'data' => $data,
       'url'  => $url,
       'attendre' => $wait,
   ];

   $type = $this->getResponseType();
   if ($type == 'html'){
       $response = view($this ->app->config->get('app.dispatch_success_tmpl'), $result);
   } else if ($type == 'json') {
       $response = json($result );
   }
   lancer une nouvelle HttpResponseException($response);
}

/**
* Méthode de raccourci pour le saut d'erreur
* @access protected
* @param Mixed $msg message d'invite
* @param string $url Adresse URL du saut
* @param Mixed $data Données renvoyées
* @param integer $wait Temps d'attente du saut
* @param array $header Informations d'en-tête envoyées
* @return void
*/
erreur de fonction protégée ($msg = '', string $ url = null, $data = '', int $wait = 3, array $header = [])
{
   if (is_null($url)) {
       $url = $this-> request->isAjax() ? '' : 'javascript:history.back(-1);';
   } elseif ($url) {
       $url = (strpos($url, '://') || 0 === strpos($url, '/')) ? $url : $this->app->route->buildUrl($url);
     }

   $result = [
       'code' => 0,
       'msg'  => $msg,
       'data' => $data,
       'url'  => $url,
       'attendre' => $wait,
   ];

   $type = $this->getResponseType();
   if ($type == 'html'){
       $response = view($this ->app->config->get('app.dispatch_error_tmpl'), $result);
   } else if ($type == 'json') {
       $response = json($result );
   }
   lancer une nouvelle HttpResponseException($response);
}

/**
* La redirection d'URL, la redirection intégrée n'est pas valide
* @access protected
* @param string $url jump URL expression
* @param array|integer $params autres paramètres d'URL
* @param integer $code code http
* @param array $avec passage de paramètre implicite
* @return void
*/
redirection de fonction protégée($url, $params = [] , $code = 302, $with = [])
{
   $response = Response::create($url, 'redirect');

   if (is_integer($params)) { > ($with);

   lancer une nouvelle HttpResponseException($response);
}

/**
* Obtenez le type de sortie de réponse actuel
* @access protected
* @return string
*/
fonction protégée getResponseType()
{
   return $this->request->isJson() || $this->request->isAjax() ? 'json' : 'html';
}

//
// 以上为新增,为了使用旧版的 erreur de redirection réussie 跳转  end
//

Le cas d'utilisation de l'invite de redirection pour accéder à l'invite de code après 3 secondes est le suivant

//Gestion de l'échec de la vérification
              $p = $v->getError( //); Les informations demandées sont un message d'erreur de vérification sur le serveur
$this->success($p, url('/admin/index/Add_order_list/')); //Redirection et message d'invite

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!

Étiquettes associées:
1
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal