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 相关文章推荐
简单的过滤字符串中的HTML标记
Dec 25 PHP
基于Snoopy的PHP近似完美获取网站编码的代码
Oct 23 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
Jan 09 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
Nov 19 PHP
Thinkphp搜索时首页分页和搜索页保持条件分页的方法
Dec 05 PHP
php中socket通信机制实例详解
Jan 03 PHP
Yii实现显示静态页的方法
Apr 25 PHP
PHP 的比较运算与逻辑运算详解
May 12 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
Jun 22 PHP
php实现单笔转账到支付宝功能
Oct 09 PHP
PHP常见的几种攻击方式实例小结
Apr 29 PHP
php 多继承的几种常见实现方法示例
Nov 18 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
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
ThinkPHP实现多数据库连接的解决方法
2014/07/01 PHP
php基于curl主动推送最新内容给百度收录的方法
2016/10/14 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
WEB 浏览器兼容 推荐收藏
2010/05/14 Javascript
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
jQuery知识点整理
2015/01/30 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
AngularJS基础 ng-options 指令详解
2016/08/02 Javascript
基于VUE实现的九宫格抽奖功能
2018/09/30 Javascript
详解解决小程序中webview页面多层history返回问题
2019/08/20 Javascript
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
[50:34]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python中列表和元组的使用方法和区别详解
2020/12/30 Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
2018/06/09 Python
tensorflow 加载部分变量的实例讲解
2018/07/27 Python
python调用百度语音识别api
2018/08/30 Python
django 自定义过滤器的实现
2019/02/26 Python
python3.6下Numpy库下载与安装图文教程
2019/04/02 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
2019/07/05 Python
Pytorch 实现权重初始化
2019/12/31 Python
Python selenium模拟手动操作实现无人值守刷积分功能
2020/05/13 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
CSS3之背景尺寸Background-size使用介绍
2013/10/14 HTML / CSS
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
三好学生先进事迹材料
2014/08/28 职场文书
2014年保育员工作总结
2014/12/02 职场文书
项目技术负责人岗位职责
2015/04/13 职场文书
放假通知
2015/04/14 职场文书
详解CocosCreator消息分发机制
2021/04/16 Javascript
解决Maven项目中 Invalid bound statement 无效的绑定问题
2021/06/15 Java/Android