thinkphp 6.0 의 success,error 실현 방법 기반
시스템 은 더 이상 기본 컨트롤 러 클래스 를 제공 하지 않 습 니 다. 원래 success 、 error 、 redirect 와 result 방법 은 스스로 기초 컨트롤 러 클래스 에서 이 루어 져 야 합 니 다.
이것 은 자신 이 원래 의 일련의 함 수 를 실현 해 야 한 다 는 것 을 의미한다.
여기 서 to 5.1 의 점프 소스 코드 를 참고 하여 개선 할 수 있 습 니 다.구체 적 인 절 차 는 다음 과 같 습 니 다.
1.app 디 렉 터 리 에 tpl 폴 더 를 새로 만 들 고 dispatch 를 넣 습 니 다.jmp.tpl 파일,이것 은 원래 tp5 에서 copy 로 바로 갈 수 있 습 니 다.
2.config 폴 더 의 app.php 에 템 플 릿 파일 을 설정 하 는 경 로 를 추가 합 니 다.
//
'dispatch_success_tmpl' => app()->getRootPath() . '/app/tpl/dispatch_jump.tpl',
'dispatch_error_tmpl' => app()->getRootPath() . '/app/tpl/dispatch_jump.tpl',
3.기본 클래스 BaseController 에 다음 코드 를 추가 합 니 다.
use think\exception\HttpResponseException;
use think\Response;
……
/**
*
* @access protected
* @param mixed $msg
* @param string $url URL
* @param mixed $data
* @param integer $wait
* @param array $header Header
* @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 : $this->app->route->buildUrl($url);
}
$result = [
'code' => 1,
'msg' => $msg,
'data' => $data,
'url' => $url,
'wait' => $wait,
];
$type = $this->getResponseType();
// , response_send getData()
if ('html' == strtolower($type)) {
$type = 'view';
}
$response = Response::create($result, $type)->header($header)->options(['jump_template' => app()->config->get('app.dispatch_success_tmpl')]);
throw new HttpResponseException($response);
}
/**
*
* @access protected
* @param mixed $msg
* @param string $url URL
* @param mixed $data
* @param integer $wait
* @param array $header Header
* @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 ('html' == strtolower($type)) {
$type = 'view';
}
$response = Response::create($result, $type)->header($header)->options(['jump_template' => app()->config->get('app.dispatch_success_tmpl')]);
throw new HttpResponseException($response);
}
총결산위 에서 말 한 것 은 편집장 이 여러분 에 게 소개 한 thinkphp 6.0 의 success,error 실현 방법 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 저 에 게 메 시 지 를 남 겨 주세요.편집장 은 신속하게 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Thinkphp의 S 캐시 사용법!텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.