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 编写的日历
Oct 09 PHP
网友原创的PHP模板类代码
Sep 07 PHP
PHP采集相关教程之一 CURL函数库
Feb 15 PHP
php中检查文件或目录是否存在的代码小结
Oct 22 PHP
PHP 使用pcntl和libevent 实现Timer功能
Oct 27 PHP
php更新修改excel中的内容实例代码
Feb 26 PHP
3个PHP多维数组转为一维数组的方法实例
Mar 13 PHP
ThinkPHP连接数据库的方式汇总
Dec 05 PHP
PHP中的魔术方法总结和使用实例
May 11 PHP
php结合mysql与mysqli扩展处理事务的方法
Jun 29 PHP
微信公众号实现扫码获取微信用户信息(网页授权)
Apr 09 PHP
thinkphp框架类库扩展操作示例
Nov 26 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
晶体管来复再生式二管收音机
2021/03/02 无线电
php empty,isset,is_null判断比较(差异与异同)
2010/10/19 PHP
PHP实现的简单网络硬盘
2015/07/29 PHP
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
Laravel中9个不经常用的小技巧汇总
2019/04/16 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
jquery中ajax学习笔记一
2011/10/16 Javascript
jquery入门—选择器实现隔行变色实例代码
2013/01/04 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
javascript学习笔记之函数定义
2015/06/25 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
JS实现浏览器状态栏文字闪烁效果的方法
2015/10/27 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
vue动态绑定class选中当前列表变色的方法示例
2018/12/19 Javascript
JS call()及apply()方法使用实例汇总
2020/07/11 Javascript
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
python网络编程学习笔记(五):socket的一些补充
2014/06/09 Python
Python实现处理管道的方法
2015/06/04 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
python 实现提取log文件中的关键句子,并进行统计分析
2019/12/24 Python
Python urllib.request对象案例解析
2020/05/11 Python
CSS3线性渐变简单实现以及该属性在浏览器中的不同
2012/12/12 HTML / CSS
世界上最大的家庭自动化公司:Smarthome
2017/12/20 全球购物
美国社交购物市场:MassGenie
2019/02/18 全球购物
《长城和运河》教学反思
2014/04/14 职场文书
开学典礼演讲稿
2014/05/23 职场文书
计划生育宣传标语
2014/06/21 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
2014年图书馆工作总结
2014/11/25 职场文书
迟到检讨书
2015/01/26 职场文书
2015年机关后勤工作总结
2015/05/26 职场文书