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 相关文章推荐
简单采集了yahoo的一些数据
Feb 14 PHP
PHP中simplexml_load_string函数使用说明
Jan 01 PHP
php中禁止单个IP与ip段访问的代码小结
Jul 04 PHP
屏蔽机器人从你的网站搜取email地址的php代码
Nov 14 PHP
PHP 提取图片img标记中的任意属性的简单实例
Dec 10 PHP
安装ImageMagick出现error while loading shared libraries的解决方法
Sep 23 PHP
详细解读PHP的Yii框架中登陆功能的实现
Aug 21 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
Mar 14 PHP
Laravel中间件实现原理详解
Oct 09 PHP
PHP7引入的"??"和"?:"的区别讲解
Apr 08 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
Jun 13 PHP
laravel 实现划分admin和home 模块分组
Oct 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
全国FM电台频率大全 - 24 贵州省
2020/03/11 无线电
WordPress用户登录框密码的隐藏与部分显示技巧
2015/12/31 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
js 方法实现返回多个数据的代码
2009/04/30 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
2014/04/04 Javascript
js处理php输出时间戳对不上号的解决方法
2014/06/20 Javascript
JQuery1.8 判断元素是否绑定事件的方法
2014/07/10 Javascript
javascript设置连续两次点击按钮时间间隔的方法
2014/10/28 Javascript
JS+CSS3制作炫酷的弹窗效果
2016/11/08 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
AngularJs 最新验证手机号码的实例,成功测试通过
2017/11/26 Javascript
解决vue 更改计算属性后select选中值不更改的问题
2018/03/02 Javascript
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
微信小程序 自定义弹窗实现过程(附代码)
2019/12/05 Javascript
在vue-cli创建的项目中使用sass操作
2020/08/10 Javascript
原生js实现贪吃蛇游戏
2020/10/26 Javascript
python将ip地址转换成整数的方法
2015/03/17 Python
CentOS安装pillow报错的解决方法
2016/01/27 Python
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
pycharm安装图文教程
2017/05/02 Python
速记Python布尔值
2017/11/09 Python
numpy中索引和切片详解
2017/12/15 Python
python方向键控制上下左右代码
2018/01/20 Python
python生成n个元素的全组合方法
2018/11/13 Python
Django处理多用户类型的方法介绍
2019/05/18 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
Django框架创建项目的方法入门教程
2019/11/04 Python
关于numpy.where()函数 返回值的解释
2019/12/06 Python
PyCharm最新激活码PyCharm2020.2.3有效
2020/11/18 Python
银行委托书范本
2014/04/04 职场文书
2015新年寄语大全
2014/12/08 职场文书
教师党员自我评价2015
2015/03/04 职场文书
法院执行局工作总结
2015/08/11 职场文书
JavaScript继承的三种方法实例
2021/05/12 Javascript
vue实现列表垂直无缝滚动
2022/04/08 Vue.js