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
php简单提示框alert封装函数
Aug 08 PHP
基于MySQL体系结构的分析
May 02 PHP
深入PHP许愿墙模块功能分析
Jun 25 PHP
php二维数组用键名分组相加实例函数
Nov 06 PHP
纯php生成随机密码
Oct 30 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
mac系统下为 php 添加 pcntl 扩展
Aug 28 PHP
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
Nov 05 PHP
PHP实现验证码校验功能
Nov 16 PHP
Laravel框架实现的使用smtp发送邮件功能示例
Mar 12 PHP
PHP7内核之Reference详解
Mar 14 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
2013/07/18 PHP
PHP $_FILES中error返回值详解
2014/01/30 PHP
php微信开发之图片回复功能
2018/06/14 PHP
用于节点操作的API,颠覆原生操作HTML DOM节点的API
2010/12/11 Javascript
js中关于String对象的replace使用详解
2011/05/24 Javascript
使用firebug进行调试javascript的示例
2013/12/16 Javascript
利用函数的惰性载入提高javascript代码执行效率
2014/05/05 Javascript
jquery插件corner实现圆角边框的方法
2015/03/09 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
简介JavaScript中setUTCSeconds()方法的使用
2015/06/12 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
轻松5句话解决JavaScript的作用域
2016/07/15 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
基于D3.js实现时钟效果
2018/07/17 Javascript
深入Vue-Router路由嵌套理解
2018/08/13 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
node实现分片下载的示例代码
2018/10/17 Javascript
js变量值传到php过程详解 将php解析成数据
2019/06/26 Javascript
微信小程序登录时如何获取input框中的内容
2019/12/04 Javascript
Python代码调试的几种方法总结
2015/04/15 Python
python 3.6 +pyMysql 操作mysql数据库(实例讲解)
2017/12/20 Python
在PYQT5中QscrollArea(滚动条)的使用方法
2019/06/14 Python
python实现生成Word、docx文件的方法分析
2019/08/30 Python
python通过移动端访问查看电脑界面
2020/01/06 Python
CSS3中线性颜色渐变的一些实现方法
2015/07/14 HTML / CSS
css3 盒模型以及box-sizing属性全面了解
2016/09/20 HTML / CSS
汉米尔顿手表官网:Hamilton
2020/09/13 全球购物
大学生职业规划书的范本
2014/02/18 职场文书
党支部创先争优承诺书
2014/08/30 职场文书
七一建党节演讲稿
2014/09/11 职场文书
欧也妮葛朗台读书笔记
2015/06/30 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
pandas中关于apply+lambda的应用
2022/02/28 Python
Win11 Dev 预览版25174.1000发布 (附更新修复内容汇总)
2022/08/05 数码科技