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

吾爱主题 阅读:122 2021-09-03 15:18:00 评论:0

一,controller 层定义helper.php 文件

定义全局常量

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 public function __construct() {    $this ->middleware( function ( $request , $next ) {      $this ->_user = Auth::user();      //全局的数据处理,所有视图共用      $this ->_beforeActionInit();      if ( $this ->_user) {        define( 'ORG_ID' , $this ->_user->organization_id);        $this ->_currentOrganization = Organization::find(ORG_ID);      } else {        define( 'ORG_ID' , 0);      }           View::share( 'user' , $this ->_user);      View::share( 'currentOrganization' , $this ->_currentOrganization);      return $next ( $request );    }); }         /** * 获取对应视图 */ 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 ( empty ( $view )) { throw new RuntimeException( 'Orgnization Error' ); } return $view ; }}     //二, config 下定义view.php return [    'register' => [      1 => 'register.1' ,      2 => 'register.2'    ] ] // 三,sercive 层定义UserService.php public function getValidateRule( $org_id ) {        $rule = [ //验证必填项,确认密码和密码要相同        'userName' => 'required|alpha_num|size:6|regex:/^[a-zA-Z]{3}[0-9]{2}[a-zA-Z]{1}$/' ,        'password' => 'required|min:6' ,        'confirmPassword' => 'required|same:password' ,      ];       return $rule ; }

四,view下定义视图

register文件夹下有

1.blade.php,

2.blade.php

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

以上这篇laravel 根据不同组织加载不同视图的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/zhangjun1013/article/details/78950274

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容