163 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			163 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
| <?php namespace Gdoo\Index\Controllers;
 | |
| 
 | |
| use Session;
 | |
| use View;
 | |
| use URL;
 | |
| use Request;
 | |
| 
 | |
| use Gdoo\Index\Services\RetService;
 | |
| use Gdoo\System\Models\Setting;
 | |
| 
 | |
| use App\Http\Controllers\Controller as BaseController;
 | |
| 
 | |
| class Controller extends BaseController
 | |
| {
 | |
|     /**
 | |
|      * @var 程序版本
 | |
|      */
 | |
|     public $version = '2.3.2';
 | |
| 
 | |
|     /**
 | |
|      * @var 配置参数
 | |
|      */
 | |
|     public $setting = [];
 | |
| 
 | |
|     /**
 | |
|      * @var 跳过acl检查的方法
 | |
|      */
 | |
|     public $permission = [];
 | |
| 
 | |
|     /**
 | |
|      * @var 当前控制下的方法权限
 | |
|      */
 | |
|     public $access = [];
 | |
|    
 | |
|     /**
 | |
|      * @var layout 布局视图模板
 | |
|      */
 | |
|     protected $layout = 'layouts.default';
 | |
| 
 | |
|     /**
 | |
|      * @var 数据库类型
 | |
|      */
 | |
|     public $dbType = 'sqlsrv';
 | |
| 
 | |
|     /**
 | |
|      * 初始化ret数据
 | |
|      */
 | |
|     public $ret = null;
 | |
| 
 | |
|     /**
 | |
|      * @var 执行初始化工作
 | |
|      */
 | |
|     public function __construct()
 | |
|     {
 | |
|         // 不丢失表单返回数据
 | |
|         header('Cache-control:private, must-revalidate');
 | |
| 
 | |
|         // 获取配置数据
 | |
|         $this->setting = Setting::where('type', 'system')->pluck('value', 'key');
 | |
| 
 | |
|         $this->dbType = env('DB_CONNECTION');
 | |
| 
 | |
|         $this->ret = RetService::make();
 | |
| 
 | |
|         View::share([
 | |
|             'version' => $this->version,
 | |
|             'setting' => $this->setting,
 | |
|             'public_url' => URL::to('/'),
 | |
|             'upload_url' => URL::to('/uploads'),
 | |
|             'static_url' => URL::to('/static'),
 | |
|             'asset_url' => URL::to('/assets'),
 | |
|         ]);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Ajax调用返回
 | |
|      *
 | |
|      * 返回json数据, 供前台ajax调用
 | |
|      * @param array   $data     返回数组,支持数组
 | |
|      * @param boolean $status   执行状态, 1为true, 0为false
 | |
|      * @param string  $type     返回信息类型, 默认为primary
 | |
|      * @return string
 | |
|      */
 | |
|     public function json($data, $status = false)
 | |
|     {
 | |
|         return response_json($data, $status);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 返回页面
 | |
|      */
 | |
|     public function back($message = null, $type = 'message')
 | |
|     {
 | |
|         $args = func_num_args();
 | |
|         if ($args == 0) {
 | |
|             return redirect()->back();
 | |
|         }
 | |
|         return redirect()->back()->with($type, $message);
 | |
|     }
 | |
|     
 | |
|     // 操作错误返回
 | |
|     public function error($error = null, $type = 'error')
 | |
|     {
 | |
|         $args = func_num_args();
 | |
|         if ($args == 0) {
 | |
|             return redirect()->back();
 | |
|         }
 | |
|         return redirect()->back()->with($type, $error);
 | |
|     }
 | |
| 
 | |
|     // 操作成功跳转
 | |
|     public function success($path, $params = [], $message = null, $referer = 1)
 | |
|     {
 | |
|         $args = func_num_args();
 | |
|         if ($args > 2) {
 | |
|             return $this->to($path, $params, $referer)->with('message', $message);
 | |
|         } else {
 | |
|             return $this->to($path, [], $referer)->with('message', $params);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 刷新页面附带 referer
 | |
|      */
 | |
|     public function to($path = null, $params = [], $referer = 1)
 | |
|     {
 | |
|         return redirect(url_referer($path, $params, $referer));
 | |
|     }
 | |
|     
 | |
|     /**
 | |
|      * 模板文件名
 | |
|      */
 | |
|     public function viewFile($file)
 | |
|     {
 | |
|         if ($file === null) {
 | |
|             $file = Request::controller().'.'.Request::action();
 | |
|         } else {
 | |
|             if (substr_count($file, '.') === 0) {
 | |
|                 $file = Request::controller().'.'.$file;
 | |
|             }
 | |
|         }
 | |
|         return $file;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 直接渲染模板不包含layout视图
 | |
|      */
 | |
|     public function render($params = [], $file = null)
 | |
|     {
 | |
|         return view($this->viewFile($file), $params);
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * 渲染模板嵌套到layout视图
 | |
|      */
 | |
|     public function display($params = [], $file = null, $layout = '')
 | |
|     {
 | |
|         $layout = $layout == '' ? $this->layout : $layout;
 | |
|         $layout = view($layout, $params);
 | |
|         return $layout->nest('content', $this->viewFile($file), $params);
 | |
|     }
 | |
| }
 |