64 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
			
		
		
	
	
			64 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
| <?php
 | |
| namespace app\controller;
 | |
| 
 | |
| 
 | |
| use app\model\Category;
 | |
| use app\model\Model;
 | |
| use app\model\SpecialRoute;
 | |
| 
 | |
| class Error extends BaseController
 | |
| {
 | |
|     protected $data = [];
 | |
| 
 | |
|     public function __call($method, $args)
 | |
|     {
 | |
|         //特殊路径处理
 | |
|         $specialRoute = SpecialRoute::findOneByUrl($this->request->baseUrl());
 | |
|         if(!empty($specialRoute)){
 | |
|             switch ($specialRoute["type"]){
 | |
|                 case SpecialRoute::type_archives:
 | |
|                     return action("article/detail",["id"=>$specialRoute->relation_id]);
 | |
|                     break;
 | |
|                 case SpecialRoute::type_archives_category:
 | |
|                     $category = Category::findInfoById($specialRoute->relation_id);
 | |
|                     if(empty($category)){
 | |
|                         break;
 | |
|                     }
 | |
|                     switch ($category->model_id){
 | |
|                         case Model::MODEL_PRODUCT:
 | |
|                             return action("product/index",["id"=>$specialRoute->relation_id]);
 | |
|                             break;
 | |
|                         case Model::MODEL_ARTICLE:
 | |
|                             return action("article/index",["categoryId"=>$specialRoute->relation_id]);
 | |
|                             break;
 | |
|                         case Model::MODEL_PAGE:
 | |
|                             return action("page/index",["categoryId"=>$specialRoute->relation_id]);
 | |
|                             break;
 | |
|                     }
 | |
|                     break;
 | |
|             }
 | |
|         }
 | |
|         $this->data['seoTitle'] = '404';
 | |
|         return $this->redirect('/404.html');
 | |
|     }
 | |
|     
 | |
|     public function jump()
 | |
|     {
 | |
|         $param = request()->param();
 | |
|         return view()->assign($param);
 | |
|     }
 | |
| 
 | |
|     // 404
 | |
|     public function notFind()
 | |
|     {
 | |
|         $this->data['seoTitle'] = '404';
 | |
|         return view('error/404')->assign($this->data);
 | |
|     }
 | |
| 
 | |
|     // 500
 | |
|     public function serviceFail()
 | |
|     {
 | |
|         $this->data['seoTitle'] = '500';
 | |
|         return view('error/500')->assign($this->data);
 | |
|     }
 | |
| } |