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);
|
|
}
|
|
} |