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 imagecreatetruecolor 创建高清和透明图片代码小结
May 15 PHP
php中计算程序运行时间的类代码
Nov 03 PHP
php一次性删除前台checkbox多选内容的方法
Sep 22 PHP
php图片缩放实现方法
Feb 20 PHP
php数据库备份还原类分享
Mar 20 PHP
PHP扩展模块Pecl、Pear以及Perl的区别
Apr 09 PHP
php可生成缩略图的文件上传类实例
Dec 17 PHP
如何判断php mysqli扩展类是否开启
Dec 24 PHP
如何离线执行php任务
Feb 21 PHP
PHP实现的大文件切割与合并功能示例
Apr 10 PHP
php7函数,声明,返回值等新特性介绍
May 25 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
May 12 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版(3)
2006/10/09 PHP
global.php
2006/12/09 PHP
php读取csc文件并输出
2015/05/21 PHP
smarty自定义函数用法示例
2016/05/20 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
PHP基于递归算法解决兔子生兔子问题
2018/05/11 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
Yii框架核心组件类实例详解
2019/08/06 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
一个tab标签切换效果代码
2009/03/27 Javascript
小试JQuery的AutoComplete插件
2011/05/04 Javascript
JavaScript mapreduce工作原理简析
2012/11/25 Javascript
通过js获取div的background-image属性
2013/10/15 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
2014/05/02 Javascript
Windows 系统下安装和部署Egret的开发环境
2014/07/31 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
JS实现获取剪贴板内容的方法
2016/06/21 Javascript
JS验证不重复验证码
2017/02/10 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
jQuery实现可兼容IE6的遮罩功能详解
2017/09/19 jQuery
AngularJS日期格式化常见操作实例分析
2018/05/17 Javascript
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
vue在线动态切换主题色方案
2020/03/26 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
python实现给scatter设置颜色渐变条colorbar的方法
2018/12/13 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
2019/03/27 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
Python如何定义有默认参数的函数
2020/08/10 Python
纯css3制作煽动翅膀的蝴蝶的示例
2018/04/23 HTML / CSS
应届生求职自荐信范文
2014/04/07 职场文书
Go语言设计模式之结构型模式
2021/06/22 Golang
Python内置数据类型中的集合详解
2022/03/18 Python
pd.drop_duplicates删除重复行的方法实现
2022/06/16 Python