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 相关文章推荐
NOD32 v2.70.32 简体中文封装版 提供下载了
Feb 27 PHP
snoopy PHP版的网络客户端提供本地下载
Apr 15 PHP
PHP动态分页函数,PHP开发分页必备啦
Nov 07 PHP
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
Mar 05 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
Dec 07 PHP
php中curl和file_get_content的区别
May 10 PHP
Thinkphp实现自动验证和自动完成
Dec 19 PHP
php基于CodeIgniter实现图片上传、剪切功能
May 14 PHP
PHP针对中英文混合字符串长度判断及截取方法示例
Mar 31 PHP
PHP iconv()函数字符编码转换的问题讲解
Mar 22 PHP
php实现图片压缩处理
Sep 09 PHP
PHP引擎php.ini参数优化深入讲解
Mar 24 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 日,周,月点击排行统计
2012/01/11 PHP
php实现TCP端口检测的方法
2015/04/01 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
完美利用Yii2微信后台开发的系列总结
2016/07/18 PHP
PHP实现计算器小功能
2020/08/28 PHP
JavaScript 动态生成方法的例子
2009/07/22 Javascript
Javascript读取cookie函数代码
2010/10/16 Javascript
完美解决IE低版本不支持call与apply的问题
2013/12/05 Javascript
js简单的点击返回顶部效果实现方法
2015/04/10 Javascript
JavaScript实现网页对象拖放功能的方法
2015/04/15 Javascript
使用JavaScript制作一个简单的计数器的方法
2015/07/07 Javascript
纯js三维数组实现三级联动效果
2017/02/07 Javascript
nodejs中使用HTTP分块响应和定时器示例代码
2017/03/19 NodeJs
node.js-v6新版安装具体步骤(分享)
2017/09/06 Javascript
vue 添加vux的代码讲解
2017/11/30 Javascript
vue2 前端搜索实现示例
2018/02/26 Javascript
vue设置全局访问接口API地址操作
2020/08/14 Javascript
vue 获取url里参数的两种方法小结
2020/11/12 Javascript
[02:05]2014DOTA2西雅图邀请赛 专访啸天mik夫妻档
2014/07/08 DOTA
Python调用C/C++动态链接库的方法详解
2014/07/22 Python
使用Python装饰器在Django框架下去除冗余代码的教程
2015/04/16 Python
Python算术运算符实例详解
2017/05/31 Python
python 绘制拟合曲线并加指定点标识的实现
2019/07/10 Python
如何用Python和JS实现的Web SSH工具
2021/02/23 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
10 套华丽的CSS3 按钮小结
2012/10/03 HTML / CSS
Myprotein瑞士官方网站:运动营养和健身网上商店
2019/09/25 全球购物
党员一句话承诺大全
2014/03/28 职场文书
贷款担保书范文
2014/05/13 职场文书
党课心得体会范文
2014/09/09 职场文书
银行会计主管岗位职责
2014/10/01 职场文书
2015年读书月活动总结
2015/03/26 职场文书
公司年夜饭通知
2015/04/25 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
建国大业电影观后感
2015/06/01 职场文书