Heim >PHP-Framework >Denken Sie an PHP >Thinkphp6-Weiterleitungstipps

Thinkphp6-Weiterleitungstipps

爆肝混世大魔王-流笙 第五人格服务
爆肝混世大魔王-流笙 第五人格服务Original
2021-05-04 18:51:21240Durchsuche

1. Bereiten Sie die Sprungvorlagendatei vor

Kopieren Sie die Sprungvorlagendatei aus dem alten ThinkPHP-Framework

Der Speicherort befindet sich in der alten Framework-Kerndatei/thinkphp/tpl/dispatch_jump.tpl

Zum Beispiel: /public / tpl/dispatch_jump.tpl

2. Ändern Sie die Konfigurationsdatei

Der Speicherort ist /config/app.php. Fügen Sie die folgenden 2 Codezeilen wie folgt zur Konfigurationsdatei hinzu:

//Die entsprechende Vorlagendatei die Standard-Sprungseite [Neu]
'dispatch_success_tmpl' => app()->getRootPath() '/public/tpl/dispatch_jump.tpl',
'dispatch_error_tmpl' => ) . '/public/ tpl/dispatch_jump.tpl',
———————————————

3. Der Speicherort befindet sich in /app/BaseController .php

(1) Fügen Sie oben die folgenden 2 Codezeilen hinzu, und die importierte Datei sieht wie folgt aus:

//

// Die folgenden 2 Zeilen werden verwendet, um zur alten Version der Erfolgsfehlerumleitung zu springen

//
use thinkExceptionHttpResponseException;
use thinkfacadeRequest;
———— ————————————


2) Nehmen Sie als Nächstes Änderungen in dieser grundlegenden Controller-Klassendatei vor und fügen Sie direkt den folgenden Code hinzu: „

//
// 以下为新增,为了使用旧版的 Erfolg Fehlerumleitung 跳转  start
//

/**
* Verknüpfungsmethode für erfolgreichen Sprung
* @access protected
* @param gemischt $msg Eingabeaufforderung
* @param string $url Sprung-URL-Adresse
* @param gemischt $data Zurückgegebene Daten
* @param integer $wait Sprungwartezeit
* @param array $header Header-Informationen gesendet
* @return void
*/
protected function success($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,
       'wait' => $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);
   }
   throw new HttpResponseException($response);
}

/**
* Verknüpfungsmethode für Fehlersprung
* @access protected
* @param gemischt $msg Eingabeaufforderung
* @param string $url Sprung-URL-Adresse
* @param gemischt $data Zurückgegebene Daten
* @param integer $wait Sprungwartezeit
* @param array $header Header-Informationen gesendet
* @return void
*/
protected function error($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,
       'wait' => $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);
   }
   throw new HttpResponseException($response);
}

/**
* URL-Umleitung Die integrierte Umleitung ist ungültig
* @access protected
* @param string $url Jump URL expression
* @param array|integer $params Andere URL-Parameter
* @param integer $code http code
* @ param-Array $mit impliziter Parameterübergabe
* @return void
*/
protected function restart($url, $params = [], $code = 302, $with = [])
{
   $response = Response::create($url, 'redirect');

   if (is_integer($params)) {
       $code   = $params;
       $params = [];
   }

   $response->code($code)->params($ params)->with($with);

   throw new HttpResponseException($response);
}

/**&*/
protected function getResponseType()
{
   return $this->request- >isJson() || $this->request->isAjax() ? 'json' : 'html';
}

//
//

Der Fall, dass die Weiterleitungsaufforderung verwendet wird, um nach 3 Sekunden zur Codeaufforderung zu springen, ist wie folgt:

// Umgang mit dem Verifizierungsfehler
                                                                                                                          ->success($p, url('/admin/index/Add_order_list/')) ; //Informationen umleiten und umgehend

Das obige ist der detaillierte Inhalt vonThinkphp6-Weiterleitungstipps. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn