zzwy2/app/controller/Error.php

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