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


Posted in PHP onOctober 14, 2019

一,controller 层定义helper.php 文件

定义全局常量

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

//五,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 根据不同组织加载不同视图的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP如何透过ODBC来存取数据库
Oct 09 PHP
腾讯QQ php程序员面试题目整理
Jun 08 PHP
PHP中利用substr_replace将指定两位置之间的字符替换为*号
Jan 27 PHP
利用PHP实现智能文件类型检测的实现代码
Aug 02 PHP
简单的php文件上传(实例)
Oct 27 PHP
php实现批量压缩图片文件大小的脚本
Jul 04 PHP
PHP中的静态变量及static静态变量使用详解
Nov 05 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
May 07 PHP
PHP中常用的数组操作方法笔记整理
May 16 PHP
浅谈PHP中try{}catch{}的使用方法
Dec 09 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
Jan 17 PHP
php+Memcached实现简单留言板功能示例
Feb 15 PHP
Laravel 创建可以传递参数 Console服务的例子
Oct 14 #PHP
laravel 自定义常量的两种方案
Oct 14 #PHP
Laravel如何实现自动加载类
Oct 14 #PHP
解决laravel资源加载路径设置的问题
Oct 14 #PHP
Laravel基础_关于view共享数据的示例讲解
Oct 14 #PHP
在Laravel 的 Blade 模版中实现定义变量
Oct 14 #PHP
在laravel框架中实现封装公共方法全局调用
Oct 14 #PHP
You might like
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
PHP获取MAC地址的函数代码
2011/09/11 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
2013/06/17 PHP
jQuery下的几个你可能没用过的功能
2010/08/29 Javascript
25个优雅的jQuery Tooltip插件推荐
2011/05/25 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
2012/04/15 Javascript
JavaScript自执行闭包的小例子
2013/06/29 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
基于jquery实现的可编辑下拉框实现代码
2014/08/02 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
jQuery使用经验小技巧(推荐)
2016/05/31 Javascript
JS弹出窗口插件zDialog简单用法示例
2016/06/12 Javascript
基本DOM节点操作
2017/01/17 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
在使用JSON格式处理数据时应该注意的问题小结
2017/05/20 Javascript
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
JavaScript实现的超简单计算器功能示例
2017/12/23 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
2019/08/27 Javascript
Vue表单提交点击事件只允许点击一次的实例
2020/10/23 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
Python实现CNN的多通道输入实例
2020/01/17 Python
python代码能做成软件吗
2020/07/24 Python
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
学校消防演习方案
2014/02/19 职场文书
教堂婚礼主持词
2014/03/14 职场文书
爱国演讲稿500字
2014/05/04 职场文书
乐观自信演讲稿范文
2014/05/21 职场文书
宣传口号大全
2014/06/16 职场文书
项目工作说明书
2014/07/29 职场文书
公务员考察材料范文
2014/12/23 职场文书
万里长城导游词
2015/01/30 职场文书
2015年度物流工作总结
2015/04/30 职场文书
关于MySQL中的 like操作符详情
2021/11/17 MySQL
SpringBoot+Redis实现布隆过滤器的示例代码
2022/03/17 Java/Android
使用vuex-persistedstate本地存储vuex
2022/04/29 Vue.js