Maison >cadre php >PensezPHP >conseils de redirection thinkphp6

conseils de redirection thinkphp6

爆肝混世大魔王-流笙 第五人格服务
爆肝混世大魔王-流笙 第五人格服务original
2021-05-04 18:51:21243parcourir

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!

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