static function redirect_login_page($redirect = '') { $url = '/user/auth/login'; if (PtLib\is_xhr()) { PtLib\json_response('', 1, "请先登陆", $url); } else { $redirect = empty($redirect) ? PtApp::current_url() : $redirect; PtLib\location("/user/auth/login?redirect=" . urldecode($redirect)); } }
function route_model($model_file, $action, $method_prefix = "action", $return = false) { $domain_route_file = PATH_APP . "/include/domain_route.php"; if (is_file($domain_route_file)) { include_once $domain_route_file; domain_route($model_file); } PtApp::$model = PtApp::get_model($model_file); $model_file_path = PtLib\get_model_file_path($model_file); PtApp::$model_path = $model_file_path; if (is_dir(PATH_MODEL) && is_file($model_file_path)) { $model_class_name = PtLib\get_model_class_name(PtApp::$model); if (!class_exists($model_class_name)) { throw new ErrorException("类: {$model_class_name} 不存在", 100404); } $model_action_name = PtLib\get_model_action_name($action, $method_prefix); PtApp::$model_class_name = $model_class_name; $_reflector = new ReflectionClass($model_class_name); if ($method_prefix == 'action') { PtApp::$model_action_name = $model_action_name; } else { PtApp::$model_view_name = $model_action_name; } if (!$_reflector->hasMethod($model_action_name)) { throw new ErrorException("{$method_prefix}: {$model_class_name}->{$model_action_name} 不存在", 100404); } $_reflector_func = $_reflector->getmethod($model_action_name); $_r_params = array(); $_r_params_keys = $_reflector_func->getParameters(); foreach ($_r_params_keys as $_k) { $_r_params[] = $_k->getName(); } $_r_args = array(); foreach ($_r_params as $_k) { $val = isset($_REQUEST[$_k]) ? trim($_REQUEST[$_k]) : null; $_r_args[$_k] = $val; } $model_return = $_reflector_func->invokeArgs(new $model_class_name(), $_r_args); if ($model_return !== null) { //有返回值 //TODO array or object if ($return) { return $model_return; } else { PtLib\json_response($model_return, 0); } } } else { throw new ErrorException("Model: {$model_file} 不存在", 100404); } }