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 相关文章推荐
mysql中存储过程、函数的一些问题
Feb 14 PHP
如何提高MYSQL数据库的查询统计速度 select 索引应用
Apr 11 PHP
第4章 数据处理-php字符串的处理-郑阿奇(续)
Jul 04 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
Aug 18 PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
table标签的结构与合并单元格的实现方法
Jul 24 PHP
本地机apache配置基于域名的虚拟主机详解
Aug 10 PHP
php实现redis数据库指定库号迁移的方法
Jan 14 PHP
PHP获取数组长度或某个值出现次数的方法
Feb 11 PHP
Zend Framework缓存Cache用法简单实例
Mar 19 PHP
php使用正则表达式去掉html中的注释方法
Nov 03 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
Jul 03 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防注入安全代码
2008/04/09 PHP
thinkphp框架实现数据添加和显示功能
2016/06/29 PHP
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
javascript面向对象之Javascript 继承
2010/05/04 Javascript
jQuery选中select控件 无法设置selected的解决方法
2010/09/01 Javascript
JQUERY的属性选择符和自定义选择符使用方法(二)
2011/04/07 Javascript
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
为Javascript中的String对象添加去除左右空格的方法(示例代码)
2013/11/30 Javascript
用unescape反编码得出汉字示例
2014/04/24 Javascript
node.js中的path.delimiter方法使用说明
2014/12/09 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
javascript中clipboardData对象用法详解
2015/05/13 Javascript
javascript精确统计网站访问量实例代码
2015/12/19 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
基于JS分页控件实现简单美观仿淘宝分页按钮效果
2016/11/07 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
2018/06/22 Javascript
微信小程序项目实践之主页tab选项实现
2018/07/18 Javascript
vue.js实现的全选与全不选功能示例【基于elementui】
2018/12/03 Javascript
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
Vue.js中的高级面试题及答案
2020/01/13 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
解决vue+router路由跳转不起作用的一项原因
2020/07/19 Javascript
vue print.js打印支持Echarts图表操作
2020/11/13 Javascript
Win7下Python与Tensorflow-CPU版开发环境的安装与配置过程
2018/01/04 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
一款纯css3实现的非常实用的鼠标悬停特效演示
2014/11/05 HTML / CSS
马来西亚与新加坡长途巴士售票网站:BusOnlineTicket.com
2018/11/05 全球购物
一套SQL笔试题
2016/08/14 面试题
霸气队列口号
2014/06/18 职场文书
球队口号
2014/06/18 职场文书
优秀教师先进材料
2014/12/16 职场文书
酒店员工管理制度
2015/08/05 职场文书