当前位置:首页 > CMS教程 > 其它CMS > 列表

laravel 根据不同组织加载不同视图的实现

发布:smiling 来源: PHP粉丝网  添加日期:2022-01-04 19:44:13 浏览: 评论:0 

今天小编就为大家分享一篇laravel 根据不同组织加载不同视图的实现,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧。

一,controller 层定义helper.php 文件

定义全局常量

  1. public function __construct() 
  2.   $this->middleware(function ($request$next) { 
  3.     $this->_user = Auth::user(); 
  4.     //全局的数据处理,所有视图共用  
  5.     $this->_beforeActionInit(); 
  6.     if ($this->_user) { 
  7.       define('ORG_ID'$this->_user->organization_id); 
  8.       $this->_currentOrganization = Organization::find(ORG_ID); 
  9.     } else { 
  10.       define('ORG_ID', 0); 
  11.     } 
  12.       
  13.     View::share('user'$this->_user); 
  14.     View::share('currentOrganization'$this->_currentOrganization); 
  15.     return $next($request); 
  16.   }); 
  17. }
  18.    
  19. /** * 获取对应视图 */if (!function_exists('get_organization_view')) { /** * @param $flag * @return \Illuminate\Config\Repository|mixed */ function get_organization_view($flag$org_id = 1) { $view = config("view.$flag." . $org_id); if (emptyempty($view)) { throw new RuntimeException('Orgnization Error'); } return $view; }} 
  20.  
  21.  
  22. //二, config 下定义view.php 
  23. return [ 
  24.   'register' => [ 
  25.     1 => 'register.1'
  26.     2 => 'register.2' 
  27.   ] 
  28. // 三,sercive 层定义UserService.php 
  29. public function getValidateRule($org_id
  30.    
  31.     $rule = [//验证必填项,确认密码和密码要相同 
  32.       'userName' => 'required|alpha_num|size:6|regex:/^[a-zA-Z]{3}[0-9]{2}[a-zA-Z]{1}$/'
  33.       'password' => 'required|min:6'
  34.       'confirmPassword' => 'required|same:password'
  35.     ]; 
  36.     
  37.   return $rule
  38. public function __construct() 
  39.   $this->middleware(function ($request$next) { 
  40.     $this->_user = Auth::user(); 
  41.     //全局的数据处理,所有视图共用  
  42.     $this->_beforeActionInit(); 
  43.     if ($this->_user) { 
  44.       define('ORG_ID'$this->_user->organization_id); 
  45.       $this->_currentOrganization = Organization::find(ORG_ID); 
  46.     } else { 
  47.       define('ORG_ID', 0); 
  48.     } 
  49.      
  50.     View::share('user'$this->_user); 
  51.     View::share('currentOrganization'$this->_currentOrganization); 
  52.     return $next($request); 
  53.   }); 
  54.  
  55.  
  56.  
  57.  
  58. /** * 获取对应视图 */if (!function_exists('get_organization_view')) { /** * @param $flag * @return \Illuminate\Config\Repository|mixed */ function get_organization_view($flag$org_id = 1) { $view = config("view.$flag." . $org_id); if (emptyempty($view)) { throw new RuntimeException('Orgnization Error'); } return $view; }} 
  59.  
  60. //二, config 下定义view.php 
  61. return [ 
  62.   'register' => [ 
  63.     1 => 'register.1'
  64.     2 => 'register.2' 
  65.   ] 
  66. // 三,sercive 层定义UserService.php 
  67. public function getValidateRule($org_id
  68.  
  69.     $rule = [//验证必填项,确认密码和密码要相同 
  70.       'userName' => 'required|alpha_num|size:6|regex:/^[a-zA-Z]{3}[0-9]{2}[a-zA-Z]{1}$/'
  71.       'password' => 'required|min:6'
  72.       'confirmPassword' => 'required|same:password'
  73.     ]; 
  74.    
  75.   return $rule

四,view下定义视图

register文件夹下有

1.blade.php,

2.blade.php

  1. //五,controller下引用 
  2.  
  3. /** 
  4.  * 注册 
  5.  */ 
  6. public function register(Request $request
  7.     
  8.     //提交注册 
  9.     if ($request->isMethod('post')) { 
  10.       $credentials = $request->only(['userName''password''confirmPassword']);//表单提交数据 
  11.       $rules = UserService::make($location->organization_id)->getValidateRule($location->organization_id); 
  12.       $validator = Validator::make($credentials$rules); 
  13.       if ($validator->fails()) {//验证不通过 
  14.         return Redirect::back()->withInput()->withErrors($validator); 
  15.       } 
  16.       $exists = User::where('name'$credentials['userName'])->first(); 
  17.       if ($exists) { 
  18.         $result = Lang::has("register.userExists") ? trans("register.userExists") : "User exists"
  19.         return $this->_remind('error'$result'register'); 
  20.       } 
  21.       $user = new User(); 
  22.       $user->name = trim($credentials['userName']); 
  23.       $user->password = bcrypt($credentials['password']); 
  24.       if ($user->save()) { 
  25.         //注册成功 
  26.         return redirect('/login')->with('msg', Lang::has("register.success") ? trans("register.success") : 'Register Success.'); 
  27.       } else { 
  28.         //注册失败 
  29.         $validator->errors()->add('other'$user);//如果注册失败会把错误原因返回 
  30.         return Redirect::back()->withInput()->withErrors($validator); 
  31.       } 
  32.     } 
  33.     return view(get_organization_view('register',$organization_id), ["location" => $location->name]);//加载视图 
  34.   } catch (\Exception $ex){ 
  35.     $this->_remind('error'$ex->getMessage(),'getActivationCode'); 
  36.   } 
  37. }

Tags: laravel组织加载 laravel不同视图

分享到: