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学习之数组值的操作
Apr 17 PHP
php cookies中删除的一般赋值方法
May 07 PHP
PHP 下载文件时自动添加bom头的方法实例
Jan 10 PHP
PHP实现克鲁斯卡尔算法实例解析
Aug 22 PHP
PHP SplObjectStorage使用实例
May 12 PHP
PHP多文件上传实例
Jul 09 PHP
使用纯php代码实现页面伪静态的方法
Jul 25 PHP
PHP实现QQ登录实例代码
Jan 14 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
May 20 PHP
Redis构建分布式锁
Mar 28 PHP
PHP jQuery+Ajax结合写批量删除功能
May 19 PHP
PHP检查URL包含特定字符串实例方法
Feb 11 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编写文件多服务器同步程序
2016/07/02 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
php提交表单时保留多个空格及换行的文本样式的方法
2017/06/20 PHP
python进程与线程小结实例分析
2018/11/11 PHP
jquery indexOf使用方法
2013/08/19 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
2017/02/14 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
2017/03/15 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
vue实现手机号码的校验实例代码(防抖函数的应用场景)
2019/09/05 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
js编写简易的计算器
2020/07/29 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
javascript实现拼图游戏
2021/01/29 Javascript
[01:04:39]OG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python实现超简单端口转发的方法
2015/03/13 Python
学生信息管理系统Python面向对象版
2019/01/30 Python
不归路系列:Python入门之旅-一定要注意缩进!!!(推荐)
2019/04/16 Python
利用PyCharm Profile分析异步爬虫效率详解
2019/05/08 Python
Python实现的企业粉丝抽奖功能示例
2019/07/26 Python
matlab灰度图像调整及imadjust函数的用法详解
2020/02/27 Python
PyCharm MySQL可视化Database配置过程图解
2020/06/09 Python
基于python实现模拟数据结构模型
2020/06/12 Python
六种酷炫Python运行进度条效果的实现代码
2020/07/17 Python
python爬取招聘要求等信息实例
2020/11/20 Python
英国设计师泳装、沙滩装和比基尼在线精品店:Beach Cafe
2019/08/28 全球购物
如何查找和删除数据库中的重复数据
2014/11/05 面试题
医学生临床实习自我评价
2014/03/07 职场文书
《老山界》教学反思
2014/04/08 职场文书
入职担保书范文
2014/05/21 职场文书
简单租房协议书
2014/10/21 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
JPA如何使用entityManager执行SQL并指定返回类型
2021/06/15 Java/Android
Go语言特点及基本数据类型使用详解
2022/03/21 Golang
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers