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的无限分类实现想法~
Jan 02 PHP
利用PHP和AJAX创建RSS聚合器的代码
Mar 13 PHP
让PHP以ROOT权限执行系统命令的方法
Feb 10 PHP
php入门学习知识点二 PHP简单的分页过程与原理
Jul 14 PHP
php控制linux服务器常用功能 关机 重启 开新站点等
Sep 05 PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 PHP
php根据某字段对多维数组进行排序的方法
Mar 07 PHP
PHP编译安装时常见错误解决办法
May 28 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
Oct 10 PHP
PHP执行linux命令常用函数汇总
Feb 02 PHP
PHP实现的各类hash算法长度及性能测试实例
Aug 27 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 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
php 设计模式之 工厂模式
2008/12/19 PHP
php字符串的替换,分割和连接方法
2016/05/23 PHP
php 删除指定文件夹的实例讲解
2017/07/25 PHP
PHP中危险的file_put_contents函数详解
2017/11/04 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
js png图片(有含有透明)在IE6中为什么不透明了
2010/02/07 Javascript
Jquery中对数组的操作代码
2011/08/12 Javascript
js Form.elements[i]的使用实例
2011/11/13 Javascript
关于jQuery新的事件绑定机制on()的使用技巧
2013/04/26 Javascript
js实现简单登录功能的实例代码
2013/11/09 Javascript
SuperSlide2实现图片滚动特效
2014/06/20 Javascript
node.js中的console.warn方法使用说明
2014/12/09 Javascript
javascript 闭包详解
2015/02/15 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
jQuery实现可兼容IE6的淡入淡出效果告警提示功能示例
2017/09/20 jQuery
Vue页面跳转动画效果的实现方法
2018/09/23 Javascript
详解Python的Lambda函数与排序
2016/10/25 Python
详谈python read readline readlines的区别
2017/09/22 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
PyCharm2019.3永久激活破解详细图文教程,亲测可用(不定期更新)
2020/10/29 Python
Python3+Flask安装使用教程详解
2021/02/16 Python
维德科技C#面试题笔试题
2015/12/09 面试题
毕业自荐书
2013/12/09 职场文书
客户服务经理岗位职责
2014/01/29 职场文书
大班开学家长寄语
2014/04/04 职场文书
《长相思》听课反思
2014/04/10 职场文书
道德大讲堂实施方案
2014/05/14 职场文书
淘宝客服工作职责
2014/07/11 职场文书
三严三实对照检查材料
2014/08/25 职场文书
群众路线教师自我剖析材料
2014/09/29 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
工厂清洁工岗位职责
2015/02/14 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
MySQL 亿级数据导入导出及迁移笔记
2021/06/18 MySQL
TS 类型兼容教程示例详解
2022/09/23 Javascript