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 相关文章推荐
为php4加入动态flash文件的生成的支持
Oct 09 PHP
初次接触php抽象工厂模式(Elgg)
Mar 21 PHP
使用PHPMyAdmin修复论坛数据库的图文方法
Jan 09 PHP
php实现的短网址算法分享
Jun 20 PHP
php给图片加文字水印
Jul 31 PHP
PHP如何通过AJAX方式实现登录功能
Nov 23 PHP
[原创]CI(CodeIgniter)简单统计访问人数实现方法
Jan 19 PHP
PHP判断表达式中括号是否匹配的简单实例
Oct 22 PHP
php 解决扫描二维码下载跳转问题
Jan 13 PHP
PHP实现登录注册之BootStrap表单功能
Sep 03 PHP
Laravel框架实现定时Task Scheduling例子
Oct 22 PHP
laravel框架使用阿里云短信发送消息操作示例
Feb 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
thinkphp 手机号和用户名同时登录
2017/01/20 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
2017/08/07 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
2018/04/24 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
2019/04/09 PHP
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
2012/03/01 Javascript
JS 对输入框进行限制(常用的都有)
2013/07/30 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
jQuery实现在列表的首行添加数据
2015/05/19 Javascript
fastclick插件导致日期(input[type="date"])控件无法被触发该如何解决
2015/11/09 Javascript
JavaScript缓冲运动实现方法(2则示例)
2016/01/08 Javascript
探究Vue.js 2.0新增的虚拟DOM
2016/10/20 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
2016/11/11 Javascript
Javascript 引擎工作机制详解
2016/11/30 Javascript
详解Vue 普通对象数据更新与 file 对象数据更新
2017/04/26 Javascript
javascript实现延时显示提示框效果
2017/06/01 Javascript
javascript实现二叉树的代码
2017/06/08 Javascript
浅谈webpack和webpack-cli模块源码分析
2020/01/19 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
Python中的元类编程入门指引
2015/04/15 Python
Python基础教程之浅拷贝和深拷贝实例详解
2017/07/15 Python
Python排序搜索基本算法之堆排序实例详解
2017/12/08 Python
python 检查是否为中文字符串的方法
2018/12/28 Python
Python for循环及基础用法详解
2019/11/08 Python
django框架两个使用模板实例
2019/12/11 Python
python保留小数位的三种实现方法
2020/01/07 Python
英国最大的百货公司:Harrods
2016/08/18 全球购物
莫斯科绝对前卫最秘密的商店:SVMoscow
2017/10/23 全球购物
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
工程部主管岗位职责
2013/11/17 职场文书
丑小鸭教学反思
2014/02/03 职场文书
2016元旦文艺汇演主持词(开场白+结束语)
2015/12/03 职场文书
汉语拼音教学反思
2016/02/22 职场文书
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS